33using System . ComponentModel ;
44using System . Data ;
55using System . Data . SqlClient ;
6- using System . Diagnostics . Eventing . Reader ;
76using System . Drawing ;
87using System . Linq ;
98using System . Text ;
1312
1413namespace Lab_6
1514{
16- public partial class FBiblioteca : Form
15+ public partial class fBiblioteca : Form
1716 {
18- public FBiblioteca ( )
17+ public fBiblioteca ( )
1918 {
2019 InitializeComponent ( ) ;
2120 }
2221
23-
2422 private void btMostrarLibro_Click ( object sender , EventArgs e )
2523 {
2624 ConexionBaseDeDatos conexionBaseDeDatos = new ConexionBaseDeDatos ( ) ;
2725 DataSet datos = conexionBaseDeDatos . ObtenerDatos ( false ) ;
2826 dgvLibro . DataSource = datos . Tables [ "Libros" ] ;
29-
3027 }
3128
3229 private void btEliminarLibro_Click ( object sender , EventArgs e )
3330 {
3431 if ( dgvLibro . SelectedRows . Count == 0 )
3532 {
36- MessageBox . Show ( "Seleccione los libros que desea eliminar." ) ;
33+ MessageBox . Show ( "Seleccione los libros que desea eliminar. Para seleccionar un libro, vaya a la fila que tiene el libro que quiera eliminar, " +
34+ "mire a la celda vacia a la izquierda de la fila, y haga click en esa celda vacia." ) ;
3735 return ;
3836 }
3937
@@ -45,7 +43,6 @@ private void btEliminarLibro_Click(object sender, EventArgs e)
4543 return ;
4644 }
4745
48- string connectionString = "your_connection_string_here" ;
4946 List < int > idsEliminar = new List < int > ( ) ;
5047
5148 foreach ( DataGridViewRow row in dgvLibro . SelectedRows )
@@ -57,28 +54,49 @@ private void btEliminarLibro_Click(object sender, EventArgs e)
5754 string ids = string . Join ( "," , idsEliminar ) ;
5855 string query = $ "DELETE FROM Libros WHERE id IN ({ ids } )";
5956
60- using ( SqlConnection connection = new SqlConnection ( connectionString ) )
61- {
62- SqlCommand command = new SqlCommand ( query , connection ) ;
63- try
64- {
65- connection . Open ( ) ;
66- int filasEliminadas = command . ExecuteNonQuery ( ) ;
67- MessageBox . Show ( $ "{ filasEliminadas } libros eliminados.") ;
68-
69- // Refrescar el DataGridView
70- btMostrarLibro_Click ( sender , e ) ;
71- }
72- catch ( Exception ex )
73- {
74- MessageBox . Show ( "Error al eliminar libros: " + ex . Message ) ;
75- }
76- }
57+ ConexionBaseDeDatos conexionBaseDeDatos = new ConexionBaseDeDatos ( ) ;
58+ conexionBaseDeDatos . DeleteDatos ( query ) ;
59+
60+ DataSet datos = conexionBaseDeDatos . ObtenerDatos ( false ) ;
61+ dgvLibro . DataSource = datos . Tables [ "Libros" ] ;
62+
63+
7764 }
7865
7966 private void btActualizar_Click ( object sender , EventArgs e )
8067 {
81-
68+ if ( dgvLibro . SelectedRows . Count != 1 )
69+ {
70+ MessageBox . Show ( "Seleccione un solo libro para actualizar. Para seleccionar un libro, vaya a la fila que tiene el libro que quiera actualizar, " +
71+ "mire a la celda vacia a la izquierda de la fila, y haga click en esa celda vacia." ) ;
72+ return ;
73+ }
74+
75+ DataGridViewRow row = dgvLibro . SelectedRows [ 0 ] ;
76+ int id = Convert . ToInt32 ( row . Cells [ "id" ] . Value ) ;
77+ string titulo = row . Cells [ "Titulo" ] . Value . ToString ( ) ;
78+ int cantidadDisponible = Convert . ToInt32 ( row . Cells [ "CantidadDisponible" ] . Value ) ;
79+
80+ // Mostrar un cuadro de diálogo para actualizar la cantidad
81+ string input = Microsoft . VisualBasic . Interaction . InputBox (
82+ $ "Actualizar cantidad disponible para '{ titulo } ':",
83+ "Actualizar cantidad" ,
84+ cantidadDisponible . ToString ( ) ) ;
85+
86+ if ( int . TryParse ( input , out int nuevaCantidad ) )
87+ {
88+
89+ ConexionBaseDeDatos conexionBaseDeDatos = new ConexionBaseDeDatos ( ) ;
90+ conexionBaseDeDatos . UpdateDatos ( nuevaCantidad , id ) ;
91+
92+ DataSet datos = conexionBaseDeDatos . ObtenerDatos ( false ) ;
93+ dgvLibro . DataSource = datos . Tables [ "Libros" ] ;
94+
95+ }
96+ else
97+ {
98+ MessageBox . Show ( "Ingrese un número válido." ) ;
99+ }
82100 }
83101
84102 private void btAgregarLibro_Click ( object sender , EventArgs e )
@@ -105,35 +123,12 @@ private void btAgregarLibro_Click(object sender, EventArgs e)
105123 return ;
106124 }
107125
108- string connectionString = "your_connection_string_here" ;
109- string query = "INSERT INTO Libros (Titulo, Autor, CantidadDisponible) VALUES (@Titulo, @Autor, @Cantidad)" ;
110-
111- using ( SqlConnection connection = new SqlConnection ( connectionString ) )
112- {
113- SqlCommand command = new SqlCommand ( query , connection ) ;
114- command . Parameters . AddWithValue ( "@Titulo" , titulo ) ;
115- command . Parameters . AddWithValue ( "@Autor" , autor ) ;
116- command . Parameters . AddWithValue ( "@Cantidad" , cantidadDisponible ) ;
117-
118- try
119- {
120- connection . Open ( ) ;
121- command . ExecuteNonQuery ( ) ;
122- MessageBox . Show ( "Libro agregado correctamente." ) ;
123-
124- // Refrescar el DataGridView
125- btMostrarLibro_Click ( sender , e ) ;
126- }
127- catch ( Exception ex )
128- {
129- MessageBox . Show ( "Error al agregar libro: " + ex . Message ) ;
130- }
131- } * /
132-
133-
134- FormAniadirLibro formAniadirLibro = new FormAniadirLibro ( this ) ;
135- formAniadirLibro . Show ( ) ;
136126
127+ ConexionBaseDeDatos conexionBaseDeDatos = new ConexionBaseDeDatos ( ) ;
128+ conexionBaseDeDatos . InsertDatos ( titulo , autor , cantidadDisponible ) ;
129+
130+ DataSet datos = conexionBaseDeDatos . ObtenerDatos ( false ) ;
131+ dgvLibro . DataSource = datos . Tables [ "Libros" ] ;
137132
138133 }
139134
0 commit comments