99using System . Threading . Tasks ;
1010using System . Windows . Forms ;
1111
12+ /*
13+ * Carrasco, Nathan
14+ * Herrera, Francisco
15+ * Wu, Iván
16+ */
17+
1218
1319namespace Lab_6
1420{
15- public partial class fBiblioteca : Form
21+ public partial class FBiblioteca : Form
1622 {
17- public fBiblioteca ( )
23+ public FBiblioteca ( )
1824 {
1925 InitializeComponent ( ) ;
2026 }
2127
28+ private void RefrescarDataGridView ( )
29+ {
30+ ConexionBaseDeDatos conexionBaseDeDatos = new ConexionBaseDeDatos ( ) ;
31+ DataSet datos = conexionBaseDeDatos . ObtenerDatos ( false ) ; // falso significa no muestres al elemento mas reciente de primero en el datagridview
32+ dgvLibro . DataSource = datos . Tables [ "Libros" ] ; //refresca el datagridview
33+ conexionBaseDeDatos = null ;
34+ }
35+
36+
2237 private void btMostrarLibro_Click ( object sender , EventArgs e )
2338 {
24- string connectionString = "your_connection_string_here" ; // Actualiza con tu cadena de conexión
25- string query = "SELECT * FROM Libros" ; // Consulta para obtener todos los libros
39+ RefrescarDataGridView ( ) ;
40+
41+ }
42+
43+ private void btEliminarLibro_Click ( object sender , EventArgs e )
44+ {
2645
27- using ( SqlConnection connection = new SqlConnection ( connectionString ) )
46+ if ( dgvLibro . DataSource == null )
2847 {
29- SqlDataAdapter dataAdapter = new SqlDataAdapter ( query , connection ) ;
30- DataSet dataSet = new DataSet ( ) ;
31-
32- try
33- {
34- connection . Open ( ) ;
35- dataAdapter . Fill ( dataSet , "Libros" ) ;
36- dgvLibro . DataSource = dataSet . Tables [ "Libros" ] ;
37- }
38- catch ( Exception ex )
39- {
40- MessageBox . Show ( "Error al mostrar libros: " + ex . Message ) ;
41- }
48+ RefrescarDataGridView ( ) ;
49+ MessageBox . Show ( "Seleccione los libros que desea eliminar." + Environment . NewLine +
50+ "Para seleccionar un libro, vaya a la fila que tiene el libro que quiera eliminar, " +
51+ "mire a la celda vacia a la izquierda de la fila, y haga click en esa celda vacia, lo que cambiara el color de la fila, " +
52+ "seleccionando el libro." ) ;
53+ return ;
4254 }
43- }
4455
45- private void btEliminarLibro_Click ( object sender , EventArgs e )
46- {
4756 if ( dgvLibro . SelectedRows . Count == 0 )
4857 {
49- MessageBox . Show ( "Seleccione los libros que desea eliminar." ) ;
58+ MessageBox . Show ( "Seleccione los libros que desea eliminar." + Environment . NewLine +
59+ "Para seleccionar un libro, vaya a la fila que tiene el libro que quiera eliminar, " +
60+ "mire a la celda vacia a la izquierda de la fila, y haga click en esa celda vacia, lo que cambiara el color de la fila, " +
61+ "seleccionando el libro." ) ;
62+
5063 return ;
5164 }
5265
@@ -58,7 +71,6 @@ private void btEliminarLibro_Click(object sender, EventArgs e)
5871 return ;
5972 }
6073
61- string connectionString = "your_connection_string_here" ;
6274 List < int > idsEliminar = new List < int > ( ) ;
6375
6476 foreach ( DataGridViewRow row in dgvLibro . SelectedRows )
@@ -70,30 +82,31 @@ private void btEliminarLibro_Click(object sender, EventArgs e)
7082 string ids = string . Join ( "," , idsEliminar ) ;
7183 string query = $ "DELETE FROM Libros WHERE id IN ({ ids } )";
7284
73- using ( SqlConnection connection = new SqlConnection ( connectionString ) )
74- {
75- SqlCommand command = new SqlCommand ( query , connection ) ;
76- try
77- {
78- connection . Open ( ) ;
79- int filasEliminadas = command . ExecuteNonQuery ( ) ;
80- MessageBox . Show ( $ "{ filasEliminadas } libros eliminados.") ;
81-
82- // Refrescar el DataGridView
83- btMostrarLibro_Click ( sender , e ) ;
84- }
85- catch ( Exception ex )
86- {
87- MessageBox . Show ( "Error al eliminar libros: " + ex . Message ) ;
88- }
89- }
85+ ConexionBaseDeDatos conexionBaseDeDatosInterno = new ConexionBaseDeDatos ( ) ;
86+ conexionBaseDeDatosInterno . DeleteDatos ( query ) ;
87+
88+ RefrescarDataGridView ( ) ;
89+
9090 }
9191
9292 private void btActualizar_Click ( object sender , EventArgs e )
9393 {
94+
95+ if ( dgvLibro . DataSource == null ) {
96+ RefrescarDataGridView ( ) ;
97+ MessageBox . Show ( "Seleccione un solo libro para actualizar. " + Environment . NewLine +
98+ "Para seleccionar un libro, vaya a la fila que tiene el libro que quiera actualizar, " +
99+ "mire a la celda vacia a la izquierda de la fila, y haga click en esa celda vacia, lo que cambiara el color de la fila, " +
100+ "seleccionando el libro." ) ;
101+ return ;
102+ }
103+
94104 if ( dgvLibro . SelectedRows . Count != 1 )
95105 {
96- MessageBox . Show ( "Seleccione un solo libro para actualizar." ) ;
106+ MessageBox . Show ( "Seleccione un solo libro para actualizar. " + Environment . NewLine +
107+ "Para seleccionar un libro, vaya a la fila que tiene el libro que quiera actualizar, " +
108+ "mire a la celda vacia a la izquierda de la fila, y haga click en esa celda vacia, lo que cambiara el color de la fila, " +
109+ "seleccionando el libro." ) ;
97110 return ;
98111 }
99112
@@ -110,29 +123,12 @@ private void btActualizar_Click(object sender, EventArgs e)
110123
111124 if ( int . TryParse ( input , out int nuevaCantidad ) )
112125 {
113- string connectionString = "your_connection_string_here" ;
114- string query = "UPDATE Libros SET CantidadDisponible = @Cantidad WHERE id = @id" ;
115-
116- using ( SqlConnection connection = new SqlConnection ( connectionString ) )
117- {
118- SqlCommand command = new SqlCommand ( query , connection ) ;
119- command . Parameters . AddWithValue ( "@Cantidad" , nuevaCantidad ) ;
120- command . Parameters . AddWithValue ( "@id" , id ) ;
121-
122- try
123- {
124- connection . Open ( ) ;
125- command . ExecuteNonQuery ( ) ;
126- MessageBox . Show ( "Cantidad actualizada correctamente." ) ;
127-
128- // Refrescar el DataGridView
129- btMostrarLibro_Click ( sender , e ) ;
130- }
131- catch ( Exception ex )
132- {
133- MessageBox . Show ( "Error al actualizar libro: " + ex . Message ) ;
134- }
135- }
126+
127+ ConexionBaseDeDatos conexionBaseDeDatos = new ConexionBaseDeDatos ( ) ;
128+ conexionBaseDeDatos . UpdateDatos ( nuevaCantidad , id ) ;
129+
130+ RefrescarDataGridView ( ) ;
131+
136132 }
137133 else
138134 {
@@ -160,44 +156,18 @@ private void btAgregarLibro_Click(object sender, EventArgs e)
160156 string cantidadStr = Microsoft . VisualBasic . Interaction . InputBox ( "Ingrese la cantidad disponible:" , "Agregar libro" ) ;
161157 if ( ! int . TryParse ( cantidadStr , out int cantidadDisponible ) )
162158 {
163- MessageBox . Show ( "Debe ingresar una cantidad válida ." ) ;
159+ MessageBox . Show ( "Debe ingresar una cantidad numerica como 5, 9, etc ." ) ;
164160 return ;
165161 }
166162
167- string connectionString = "your_connection_string_here" ;
168- string query = "INSERT INTO Libros (Titulo, Autor, CantidadDisponible) VALUES (@Titulo, @Autor, @Cantidad)" ;
169163
170- using ( SqlConnection connection = new SqlConnection ( connectionString ) )
171- {
172- SqlCommand command = new SqlCommand ( query , connection ) ;
173- command . Parameters . AddWithValue ( "@Titulo" , titulo ) ;
174- command . Parameters . AddWithValue ( "@Autor" , autor ) ;
175- command . Parameters . AddWithValue ( "@Cantidad" , cantidadDisponible ) ;
176-
177- try
178- {
179- connection . Open ( ) ;
180- command . ExecuteNonQuery ( ) ;
181- MessageBox . Show ( "Libro agregado correctamente." ) ;
182-
183- // Refrescar el DataGridView
184- btMostrarLibro_Click ( sender , e ) ;
185- }
186- catch ( Exception ex )
187- {
188- MessageBox . Show ( "Error al agregar libro: " + ex . Message ) ;
189- }
190- }
191- }
164+ ConexionBaseDeDatos conexionBaseDeDatos = new ConexionBaseDeDatos ( ) ;
165+ conexionBaseDeDatos . InsertDatos ( titulo , autor , cantidadDisponible ) ;
192166
193- private void fBiblioteca_Load ( object sender , EventArgs e )
194- {
195- // Aquí podrías cargar la lista de libros al iniciar la aplicación
196- }
167+ DataSet datos = conexionBaseDeDatos . ObtenerDatos ( true ) ; // true significa muestra el elemento mas reciente de primero en el datagridview
168+ dgvLibro . DataSource = datos . Tables [ "Libros" ] ; //refresca el datagridview
197169
198- private void dgvLibro_CellContentClick ( object sender , DataGridViewCellEventArgs e )
199- {
200- // Evento del DataGridView, si necesitas alguna funcionalidad aquí
201170 }
171+
202172 }
203173}
0 commit comments