Está en la página 1de 18

Conexiones a Bases de Datos

Utilizando la clase Conexin


ERNESTO GOMEZ VARGAS Ing. MSc
INTRODUCCION
Dado que en las transacciones con las
bases de datos muchas veces se repite la
creacin de los mismos objetos, se
recomienda la utilizacin de la clase
Conexin que maneje la informacin que
se repite en todas estas transacciones con
el fin de repetir las mismas lneas de
cdigo.
OBJETIVO
Desarrollar un aplicacin en un modelo de
tres capas que permita hacer insertar,
borrar, modificar y consultar los datos de
clientes en una base de datos en
ACCESS.
Se debe trabajar en la clase Clientes Los
siguientes Atributos (Cedula, Nombres,
Apellidos).

BASE DE DATOS
Base de datos en ACCESS
Nombre: Ventas.mdb
Campos: Cedula, Nombres, Apellidos

Lgica de Aplicacin
+Conexion()
+SetSentencia1(entrada s1 : string)
+Consultar() : DataSet
+EjecutarSQL1() : string
-sentenciaSQL1 : string
-mensaje : string
-conn : OleDbConnection
-miTran : OleDbTransaction
Conexion
+GestCedula() : string
+GestNombres() : string
+GestApellidos() : string
+GestClientes()
+CrearCliente() : string
+borrarCliente() : string
+modificarnombre() : string
+consultartodos() : string
-Cedula : string
-Nombres : string
-Apellidos : string
GestClientes
Clase GestClientes
public class GestClientes
{
private string Cedula;
private string Nombres;
private string Apellidos;

public string GestCedula
{
set {Cedula = value;}
get {return Cedula;}
}
public string GestNombres
{
set {Nombres = value;}
get {return Nombres;}
}
public string GestApellidos
{
set {Apellidos = value;}
get {return Apellidos;}
}
Clase GestClientes
public string CrearCliente()
{ return "INSERT INTO Clientes VALUES
('"+this.Cedula+"','"+this.Nombres+"','"+this.Apellidos+"')";
}
public string borrarCliente()
{return "DELETE * FROM Clientes WHERE Cedula='" +
this.Cedula+ "'";
}
public string modificarnombre()
{return "UPDATE Clientes SET Nombres =
'"+this.Nombres+"',Apellidos = '"+this.Apellidos+"' WHERE
Cedula= '"+this.Cedula+"'";
}
public string consultartodos()
{return "SELECT * FROM Clientes WHERE(Nombres LIKE '"
+this.Nombres+ "%')";
}
}
Clase Conexion
public class Conexion
{ private string sentenciaSQL1;
private string mensaje;
System.Data.OleDb.OleDbConnection conn;
System.Data.OleDb.OleDbTransaction miTran;
public Conexion()
{
conn = new System.Data.OleDb.OleDbConnection();
//conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data
source=D:\Ventas.mdb";
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\Ventas.accdb;Persist Security Info=False";

}
Clase Conexion
public void SetSentencia1(string s1)
{
sentenciaSQL1=s1;
}
public string EjecutarSQL1()
{
try
{
System.Data.OleDb.OleDbCommand miComando = new
System.Data.OleDb.OleDbCommand();
miComando.Connection=conn;
conn.Open();
miTran = conn.BeginTransaction(IsolationLevel.ReadCommitted); //ok Prueba con
Bloqueos
miComando.Connection = conn; // Se pasa el nombre de la conexion al Objeto
Comando
miComando.Transaction= miTran; // SE pasa el nombre de la transaccion al objeto
Comando
miComando.CommandText = sentenciaSQL1;
miComando.ExecuteNonQuery();
miTran.Commit(); // Dejamos en firme
return "Todo OK";
}
Clase Conexion
catch (Exception e)
{
miTran.Rollback();
return "Se presento el siguiente error "+e.Message;
}
finally
{
conn.Close();
}
}

public string consultaruno()
{
int seleccionados; // se define un entero para manejar el resultado de la consulta
System.Data.OleDb.OleDbDataAdapter objSql2;// se referencia un objeto ObjSql2 de la clase
OleDbDataAdapter se utilizan para rellenar DataSet y actualizar el origen de datos.
objSql2 = new System.Data.OleDb.OleDbDataAdapter(sentenciaSQL1, conn); //se instancia el objeto
ObjSql2 que recibe dos parametros el String con la sentencia SQL y el objeto OleDbConnection
System.Data.DataSet ds2 = new System.Data.DataSet(); // se instancia el objeto ds2 de la clase Dataset
objSql2.Fill(ds2, "tabla1"); //Agrega filas a DataSet o las actualiza para hacerlas coincidir con las filas
del origen de datos utilizando una tabla "tabla1"
seleccionados = ds2.Tables["tabla1"].Rows.Count; //retorna el Nmero de filas agregadas o
actualizadas correctamente
if (seleccionados == 0) //si no encontro registro
{
return " No se encuentra el nombre " ; // mensaje retornado al no encontrar registro de consulta
}
else
{
string a;
a=ds2.Tables["tabla1"].Rows[0][0].ToString();
return a;
}
}


Clase Conexion
Clase Conexion
public System.Data.DataSet Consultar()
{
try
{
conn.Open();
System.Data.OleDb.OleDbDataAdapter objRes;
objRes = new System.Data.OleDb.OleDbDataAdapter(sentenciaSQL1, conn);
System.Data.DataSet datos;
datos = new System.Data.DataSet();
objRes.Fill(datos, "Tabla");
mensaje="Todo OK";
return datos;
}
catch (Exception MiExc)
{
System.Data.DataSet datos2;
datos2 = new System.Data.DataSet();
mensaje= "Se presento el Siguiente Error " + MiExc.Message;
return datos2;
}
finally
{conn.Close();}
}
Presentacin

Presentacin Crear
private void Crear_Click(object sender, System.EventArgs e)
{
LogicaClientes.GestClientes ObjCliente;
ObjCliente = new LogicaClientes.GestClientes();
ObjCliente.GestCedula=textBox1.Text;
ObjCliente.GestNombres=textBox2.Text;
ObjCliente.GestApellidos=textBox3.Text;
LogicaClientes.Conexion con;
con = new LogicaClientes.Conexion();
con.SetSentencia1(ObjCliente.CrearCliente());
label4.Text=ObjCliente.CrearCliente();
label5.Text=con.EjecutarSQL1();
}
Presentacin Modificar
private void Modificar_Click(object sender, System.EventArgs e)
{
LogicaClientes.GestClientes ObjCliente;
ObjCliente = new LogicaClientes.GestClientes();
ObjCliente.GestCedula=textBox1.Text;
ObjCliente.GestNombres=textBox2.Text;
ObjCliente.GestApellidos=textBox3.Text;
LogicaClientes.Conexion con;
con = new LogicaClientes.Conexion();
con.SetSentencia1(ObjCliente.modificarnombre());
label4.Text=ObjCliente.modificarnombre();
label5.Text=con.EjecutarSQL1();
}
Presentacin Borrar
private void Borrar_Click(object sender, System.EventArgs e)
{
LogicaClientes.GestClientes ObjCliente;
ObjCliente = new LogicaClientes.GestClientes();
ObjCliente.GestCedula=textBox1.Text;
ObjCliente.GestNombres=textBox2.Text;
ObjCliente.GestApellidos=textBox3.Text;
LogicaClientes.Conexion con;
con = new LogicaClientes.Conexion();
con.SetSentencia1(ObjCliente.borrarCliente());
label4.Text=ObjCliente.borrarCliente();
label5.Text=con.EjecutarSQL1();
}
Presentacin Consultar Varios
private void Consultar_Click(object sender, System.EventArgs e)
{
LogicaClientes.GestClientes ObjCliente;
ObjCliente = new LogicaClientes.GestClientes();
ObjCliente.GestCedula=textBox1.Text;
ObjCliente.GestNombres=textBox2.Text;
ObjCliente.GestApellidos=textBox3.Text;
LogicaClientes.Conexion con;
con = new LogicaClientes.Conexion();
con.SetSentencia1(ObjCliente.consultartodos());
label4.Text=ObjCliente.consultartodos();
dataGrid1.DataSource =con.Consultar().Tables["tabla"].DefaultView;
}
Presentacin Consultar Uno
private void Consultaruno_Click(object sender, System.EventArgs e)
{
LogicaClientes.GestClientes ObjCliente = new
LogicaClientes.GestClientes();
ObjCliente.GestCedula = textBox1.Text;
LogicaClientes.Conexion con = new LogicaClientes.Conexion();
con.SetSentencia1(ObjCliente.consultarunon());
label4.Text = ObjCliente.consultarunon();
con.SetSentencia1(ObjCliente.consultarunoa());
textBox3.Text = con.consultaruno();


}

También podría gustarte