Files
compabetoOG/database/DAO.cs
T
2023-12-21 17:52:27 -07:00

105 lines
3.7 KiB
C#

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);
}
}
}
}