Untitled
unknown
plain_text
a year ago
20 kB
1
Indexable
Never
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using MySql.Data.MySqlClient; using System.Collections; using System.Data.SqlClient; using System.Configuration; using System.Data.Common; using static System.Windows.Forms.AxHost; using System.Windows.Controls.Primitives; using System.Windows.Forms; using System.Xml.Linq; namespace laboratorio { public class ConexionBD { private MySqlConnection conexion; public static string BD_CON = "MiConexionBD"; //private string connectionString; public ConexionBD(string connectionName) { var connectionString = ConfigurationManager.ConnectionStrings[connectionName].ConnectionString; this.conexion = new MySqlConnection(connectionString); } public MySqlConnection GetConnection() { return conexion; } public DataTable EjecutarConsulta(string consulta) { DataTable tabla = new DataTable(); try { using (var comando = new MySqlCommand(consulta, conexion)) { using (var adaptador = new MySqlDataAdapter(comando)) { adaptador.Fill(tabla); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } // Descomentar para debuggear foreach (DataRow fila in tabla.Rows) { foreach (DataColumn columna in tabla.Columns) { Console.Write(fila[columna] + " "); } Console.WriteLine(); } return tabla; } public DataTable ObtenerEscuelas() { var consulta = "SELECT idEscuelas, name FROM escuelas"; return EjecutarConsulta(consulta); } public DataTable ObtenerEspacios() { var consulta = "SELECT idEspacios, name FROM espacio"; return EjecutarConsulta(consulta); } public DataTable ObtenerEstantes(int idEspacioSeleccionado) { var consulta = "SELECT idEstantes, name FROM estantes WHERE idEspacios = @idEspacios"; using (var conexion = new ConexionBD(BD_CON).GetConnection()) { conexion.Open(); using (var comando = new MySqlCommand(consulta, conexion)) { comando.Parameters.AddWithValue("@idEspacios", idEspacioSeleccionado); using (var adaptador = new MySqlDataAdapter(comando)) { var tabla = new DataTable(); adaptador.Fill(tabla); return tabla; } } } } public DataTable ObtenerEtiquetas(int idTipoSeleccionado, int idEspacioSeleccionado) { var consulta = "SELECT idEtiquetas, name FROM etiquetas WHERE idTipos = @idTipos AND idEspacios = @idEspacios"; using (var conexion = new ConexionBD(BD_CON).GetConnection()) { conexion.Open(); using (var comando = new MySqlCommand(consulta, conexion)) { comando.Parameters.AddWithValue("@idTipos", idTipoSeleccionado); comando.Parameters.AddWithValue("@idEspacios", idEspacioSeleccionado); using (var adaptador = new MySqlDataAdapter(comando)) { var tabla = new DataTable(); adaptador.Fill(tabla); return tabla; } } } } public DataTable ObtenerAlumnos(int matricula) { var consulta = "SELECT * FROM alumnos WHERE matricula = @matricula"; using (var conexion = new ConexionBD(BD_CON).GetConnection()) { conexion.Open(); using (var comando = new MySqlCommand(consulta, conexion)) { comando.Parameters.AddWithValue("@matricula", matricula); using (var adaptador = new MySqlDataAdapter(comando)) { var tabla = new DataTable(); adaptador.Fill(tabla); return tabla; } } } } public DataTable ObtenerCarreras(int idEscuelaSeleccionada) { var consulta = "SELECT idCarreras, name FROM carreras WHERE idEscuelas = @idEscuela"; using (var conexion = new ConexionBD(BD_CON).GetConnection()) { conexion.Open(); using (var comando = new MySqlCommand(consulta, conexion)) { comando.Parameters.AddWithValue("@idEscuela", idEscuelaSeleccionada); using (var adaptador = new MySqlDataAdapter(comando)) { var tabla = new DataTable(); adaptador.Fill(tabla); return tabla; } } } } public DataTable ObtenerTipos(int idEspacioSeleccionado) { var consulta = "SELECT idTipos, name FROM tipos WHERE idEspacios = @idEspacios"; using (var conexion = new ConexionBD(BD_CON).GetConnection()) { conexion.Open(); using (var comando = new MySqlCommand(consulta, conexion)) { comando.Parameters.AddWithValue("@idEspacios", idEspacioSeleccionado); using (var adaptador = new MySqlDataAdapter(comando)) { var tabla = new DataTable(); adaptador.Fill(tabla); return tabla; } } } } public bool InsertarAlumno(string nombreAlumno, int semestre, int matricula, string email, int idCarrera, int idEscuela) { var consulta = "INSERT INTO alumnos (name, semestre, matricula, email, idCarreras, idEscuelas) VALUES (@nombre, @semestre, @matricula, @email, @idCarrera, @idEscuela)"; using (var conexion = new ConexionBD(BD_CON).GetConnection()) { conexion.Open(); using (var comando = new MySqlCommand(consulta, conexion)) { comando.Parameters.AddWithValue("@nombre", nombreAlumno); comando.Parameters.AddWithValue("@semestre", semestre); comando.Parameters.AddWithValue("@matricula", matricula); comando.Parameters.AddWithValue("@email", email); comando.Parameters.AddWithValue("@idCarrera", idCarrera); comando.Parameters.AddWithValue("@idEscuela", idEscuela); var filasAfectadas = comando.ExecuteNonQuery(); return filasAfectadas > 0; } } } public bool InsertarEspacio(string espacio, string abreviacion) { using (var connection = new ConexionBD(BD_CON).GetConnection()) { var consulta = "INSERT INTO espacio (name, abreviacion, habilitado) VALUES (@espacio, @abreviacion, @habilitado)"; using (var command = new MySqlCommand(consulta, connection)) { command.Parameters.AddWithValue("@espacio", espacio); command.Parameters.AddWithValue("@abreviacion", abreviacion); command.Parameters.AddWithValue("@habilitado", 0); connection.Open(); var filasAfectadas = command.ExecuteNonQuery(); return filasAfectadas > 0; } } } public bool InsertarEstante(string estante, int idEspacios) { var existeEstante = ExisteEstante(estante); if (!existeEstante) { var consulta = "INSERT INTO estantes (name, idEspacios, habilitado) VALUES (@estante, @idEspacios, @habilitado)"; using (var connection = new ConexionBD(BD_CON).GetConnection()) { using (var command = new MySqlCommand(consulta, connection)) { command.Parameters.AddWithValue("@estante", estante); command.Parameters.AddWithValue("@idEspacios", idEspacios); command.Parameters.AddWithValue("@habilitado", 0); connection.Open(); var filasAfectadas = command.ExecuteNonQuery(); return filasAfectadas > 0; } } } else { throw new Exception("Ya existe un estante con el mismo nombre."); } } public bool InsertarTipo(string tipo, int idEspacios) { var existeEstante = ExisteTipo(tipo); if (!existeEstante) { var consulta = "INSERT INTO tipos (name, idEspacios, habilitado) VALUES (@estante, @idEspacios, @habilitado)"; using (var connection = new ConexionBD(BD_CON).GetConnection()) { using (var command = new MySqlCommand(consulta, connection)) { command.Parameters.AddWithValue("@estante", tipo); command.Parameters.AddWithValue("@idEspacios", idEspacios); command.Parameters.AddWithValue("@habilitado", 0); connection.Open(); var filasAfectadas = command.ExecuteNonQuery(); return filasAfectadas > 0; } } } else { throw new Exception("Ya existe un tipo con el mismo nombre."); } } public bool InsertarEtiqueta(string etiqueta, int idEspacios, int idTipos) { var existeEtiqueta = ExisteEtiqueta(etiqueta); if (!existeEtiqueta) { var consulta = "INSERT INTO etiquetas (name, idEspacios, idTipos, habilitado) VALUES (@estante, @idEspacios, @idTipos, @habilitado)"; using (var connection = new ConexionBD(BD_CON).GetConnection()) { using (var command = new MySqlCommand(consulta, connection)) { command.Parameters.AddWithValue("@estante", etiqueta); command.Parameters.AddWithValue("@idEspacios", idEspacios); command.Parameters.AddWithValue("@idTipos", idTipos); command.Parameters.AddWithValue("@habilitado", 0); connection.Open(); var filasAfectadas = command.ExecuteNonQuery(); return filasAfectadas > 0; } } } else { throw new Exception("Ya existe una etiqueta con el mismo nombre."); } } public bool InsertarInventario(string nombre, string modelo, string marca, string descripcion, int cantidad, string unidad, int costo, string notas, int idEspacios, int idTipos, int idEstantes, int idEtiquetas) { var consulta = "INSERT INTO inventarios (name, modelo, marca, descripcion, cantidad, unidad, costo, notas, idEspacios, idTipos, idEstantes, idEtiquetas) VALUES (@nombre, @modelo, @marca, @descripcion, @cantidad, @unidad, @costo, @notas, @idEspacios, @idTipos, @idEstantes, @idEtiquetas)"; using (var connection = new ConexionBD(BD_CON).GetConnection()) { using (var command = new MySqlCommand(consulta, connection)) { command.Parameters.AddWithValue("@nombre", nombre); command.Parameters.AddWithValue("@modelo", modelo); command.Parameters.AddWithValue("@marca", marca); command.Parameters.AddWithValue("@descripcion", descripcion); command.Parameters.AddWithValue("@cantidad", cantidad); command.Parameters.AddWithValue("@unidad", unidad); command.Parameters.AddWithValue("@costo", costo); command.Parameters.AddWithValue("@notas", notas); command.Parameters.AddWithValue("@idEspacios", idEspacios); command.Parameters.AddWithValue("@idTipos", idTipos); command.Parameters.AddWithValue("@idEstantes", idEstantes); command.Parameters.AddWithValue("@idEtiquetas", idEtiquetas); connection.Open(); var filasAfectadas = command.ExecuteNonQuery(); return filasAfectadas > 0; } } } public bool InsertarPrestamo(int idAlumnos, int idInventarios, int idUsuarios, int tipoPrestamo) { var consulta = "INSERT INTO prestamos (idAlumnos, idInventarios, idUsuarios, tipoPrestamo) VALUES (@idAlumnos, @idInventarios, @idUsuarios, @tipoPrestamo)"; using (var connection = new ConexionBD(BD_CON).GetConnection()) { using (var command = new MySqlCommand(consulta, connection)) { command.Parameters.AddWithValue("@idAlumnos", idAlumnos); command.Parameters.AddWithValue("@idInventarios", idInventarios); command.Parameters.AddWithValue("@idUsuarios", idUsuarios); command.Parameters.AddWithValue("@tipoPrestamo", tipoPrestamo); connection.Open(); var filasAfectadas = command.ExecuteNonQuery(); return filasAfectadas > 0; } } } public bool DevolverPrestamo(int idAlumnos, int idInventarios, int idUsuarios) { var consulta = "UPDATE prestamos SET estado = 1, idUsuarios = @idUsuarios, returned_at = NOW(), notas = CONCAT('Devuelto por el alumno con nombre ', (SELECT name FROM alumnos WHERE idAlumnos = @idAlumnos)) WHERE idAlumnos = @idAlumnos AND idInventarios = @idInventarios AND estado = 0"; using (var connection = new ConexionBD(BD_CON).GetConnection()) { using (var command = new MySqlCommand(consulta, connection)) { command.Parameters.AddWithValue("@idAlumnos", idAlumnos); command.Parameters.AddWithValue("@idInventarios", idInventarios); command.Parameters.AddWithValue("@idUsuarios", idUsuarios); connection.Open(); var filasAfectadas = command.ExecuteNonQuery(); return filasAfectadas > 0; } } } public DataTable LlenarListBox(string identificador) { var consulta = "SELECT * FROM inventarios WHERE identificador = @identificador"; using (var connection = new ConexionBD(BD_CON).GetConnection()) { using (var command = new MySqlCommand(consulta, connection)) { command.Parameters.AddWithValue("@identificador", identificador); connection.Open(); using (var adapter = new MySqlDataAdapter(command)) { var result = new DataTable(); adapter.Fill(result); return result; } } } } public bool ExisteEstante(string estante) { var consulta = "SELECT COUNT(*) FROM estantes WHERE name = @nombre"; using (var connection = new ConexionBD(BD_CON).GetConnection()) { using (var command = new MySqlCommand(consulta, connection)) { command.Parameters.AddWithValue("@nombre", estante); connection.Open(); var resultado = command.ExecuteScalar(); Console.WriteLine(resultado); return Convert.ToInt32(resultado) > 0; } } } public bool ConsultarEstadoPrestamo(int idInventarios) { var consulta = "SELECT COUNT(*) FROM prestamos WHERE idInventarios = @idInventarios AND estado = @estado"; using (var connection = new ConexionBD(BD_CON).GetConnection()) { using (var command = new MySqlCommand(consulta, connection)) { command.Parameters.AddWithValue("@idInventarios", idInventarios); command.Parameters.AddWithValue("@estado", 0); connection.Open(); var resultado = command.ExecuteScalar(); Console.WriteLine(resultado); if (Convert.ToInt32(resultado) > 0) { return true; } else { return false; } } } } public bool ExisteEtiqueta(string etiqueta) { var consulta = "SELECT COUNT(*) FROM etiquetas WHERE name = @nombre"; using (var connection = new ConexionBD(BD_CON).GetConnection()) { using (var command = new MySqlCommand(consulta, connection)) { command.Parameters.AddWithValue("@nombre", etiqueta); connection.Open(); var resultado = command.ExecuteScalar(); Console.WriteLine(resultado); return Convert.ToInt32(resultado) > 0; } } } public bool ExisteTipo(string tipo) { var consulta = "SELECT COUNT(*) FROM tipos WHERE name = @nombre"; using (var connection = new ConexionBD(BD_CON).GetConnection()) { using (var command = new MySqlCommand(consulta, connection)) { command.Parameters.AddWithValue("@nombre", tipo); connection.Open(); var resultado = command.ExecuteScalar(); Console.WriteLine(resultado); return Convert.ToInt32(resultado) > 0; } } } } }