using System; using System.Collections.Generic; using System.Data.SQLite; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using compabetov2.database; namespace compabetov2.database { internal class DAO { public static bool iniciarSesionDAO(String usuario, String contra) { var db_conexion = new Conexion(); try { SQLiteConnection conexion = db_conexion.get_connection(); conexion.Open(); string sql = "SELECT usuario, contra FROM Login WHERE usuario = @param0"; SQLiteCommand command = new SQLiteCommand(sql, conexion); command.Parameters.AddWithValue($"@param{0}", usuario); SQLiteDataReader reader = command.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { if (reader["contra"].Equals(contra)) { return true; } else { MessageBox.Show("Usuario o contraseña incorrectos"); return false; } } MessageBox.Show("Usuario o contraseña incorrectos"); return false; } else { MessageBox.Show("Usuario o contraseña incorrectos"); return false; } } catch (SQLiteException ex) { if (ex.Message.Contains("no such table")) { crearDB(); MessageBox.Show("La base de datos fue creada vuelva a intentar"); return false; } else { MessageBox.Show(ex.Message); return false; } } } private static void crearDB() { var db_conexion = new Conexion(); try { SQLiteConnection conexion = db_conexion.get_connection(); conexion.Open(); string[] consultas = new string[] { "DROP TABLE IF EXISTS Empleado", "DROP TABLE IF EXISTS Login", "CREATE TABLE Empleado (idempleado INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, "+ "apellido TEXT, calle TEXT, fecha_contratacion TEXT, colonia TEXT, cp TEXT, no_ext TEXT" + "no_int TEXT, referencia TEXT, fecha_nac TEXT, telefono TEXT, activo INTEGER)", "CREATE TABLE Login (idlogin INTEGER PRIMARY KEY AUTOINCREMENT, tipo TEXT, usuario TEXT, "+ "contra TEXT, fk_idempleado INTEGER, FOREIGN KEY (fk_idempleado) REFERENCES Empleado (idempleado))", "INSERT INTO Empleado ( nombre, apellido, calle, fecha_contratacion, colonia, cp, no_ext, referencia, fecha_nac, telefono, activo) VALUES('jefe', '', '', '', '', '', '', '', '', '', 0);", "INSERT INTO Login ( tipo, usuario, contra, fk_idempleado) VALUES('admin', 'admin', '12345', 1);" }; foreach (string consulta in consultas) { using (var comando = new SQLiteCommand(consulta, conexion)) { comando.ExecuteNonQuery(); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }