manejar dataset y datatables en c#

jardinderosa

Lanero Regular
1 Nov 2007
13
hola me gustaria aprender a trabajar con dataset ,pero no se ni por donde empezar ,donde lo debo de declarar como hacerlo????':(.he estado leyendo y al parecer solo me confundo, lo que planeo hacer si lo aprendo es un formulario que contenga las funciomes basicas de agregra,guardar ,actualizar y eliminar, trabajo en c# y manejo access. espero me puedan ayudar si tienen ejemplos seria bastante bueno. graciass:-p
 
para conecatarse a una base de datos cualquiera que fuese se necesitan varios objetos


1. Un objeto conexion
2. un objeto command
3. y para el dataset utilizar lo que se llama un dataadpter

teniendo esto presente se deben tener el string de conexion a las bases de datos, las consultas o lo que se quiere hacer
para esto, si el motor de bases de datos permite procedimientos almacenados, estos ya debe estar hechos.

Teniendo en cuenta que se quiere conectar a una base de datos access el comand debe tener el select


1. Un objeto conexion

string strCadenaConexion="";//esta es la cadena de conexion para conectarse a la base de datos
OleDbConnection objConn = new OleDbConnection(strCadenaConexion);


2. un objeto command
string strCommand="select campo1, campo2 from tabla";
OleDbCommand cmdConsultar = new OleDbCommand(strCommand, objConn);
cmdConsultar.CommandType = CommandType.Text;

3. y para el dataset utilizar lo que se llama un dataadpter
DataSet dtsDatos=new DataSet();
sqlConn.Open();
objAdapter.Fill(dtsDatos);
sqlConn.Close();

Listo

quedaría de la siguiente manera
public void llenarDataset()
{
string strCadenaConexion="";//esta es la cadena de conexion para conectarse a la base de datos
OleDbConnection objConn = new OleDbConnection(strCadenaConexion);
string strCommand="select campo1, campo2 from tabla";
OleDbCommand cmdConsultar = new OleDbCommand(strCommand, objConn);
cmdConsultar.CommandType = CommandType.Text;
DataSet dtsDatos=new DataSet();
sqlConn.Open();
objAdapter.Fill(dtsDatos);
sqlConn.Close();
}

listo, si es para ejecutar procedimientos almacenados el código cambia ligeramante, el string de conexion debe estar en el web.config, o en el machine.config
 
ok muchisimas gracias , solo una duda por que en esta parte puso sql


3. y para el dataset utilizar lo que se llama un dataadpter
DataSet dtsDatos=new DataSet();
sqlConn.Open(); // en esta parte
objAdapter.Fill(dtsDatos);
sqlConn.Close();

y como si quiero hacer un select ,o un delete o update solo pongo en el
string strCommand la sentencia , despues los mismos pasos y ya?
 
ok, perdón es que el ejemplo que tenía lo conectaba a una base de datos SQLServer, y SQL Connection, SQLDataAdapter, son especificos para bases de Datos SQLServer, pero para su ejemplo aplica OleDbCon..., OleDbDataAda.. etc,


string strCommand la sentencia , despues los mismos pasos y ya? la respuesta es Sí.

Ese ejemplo le debe funcionar tanto para selects como para updates y el resto de sentencias, aunque es "adecuado" solo para los selects

Para Insert, Update, y Delete lo podes hacer de esta manera


public void EjecutarConsulta()
{
string strCadenaConexion="";//esta es la cadena de conexion para conectarse a la base de datos
OleDbConnection objConn = new OleDbConnection(strCadenaConexion);
string strCommand="select campo1, campo2 from tabla";
OleDbCommand cmdConsultar = new OleDbCommand(strCommand, objConn);
cmdConsultar.CommandType = CommandType.Text;
sqlConn.Open();
cmdConsultar.ExecuteNonQuery();// o cmdConsultar.ExecuteScalar(); segun el caso, google le dice los casos
sqlConn.Close();
}
Solo cambia la linea roja y se elimina la instancia del dataset( DataSet dtsDatos=new DataSet(); )

ojalá en lugar de llenar datasets, utilice mejor el datatable o el datareader, son mas livianos que el dataset, para el caso del datatable es exactamente igual, solo que se cambia la linea
DataSet dtsDatos=new DataSet();
por
DataTable dtsDatos=new DataTable();
 
necesito ayudaaa..... resulta que no tengo ni la mas remota idea de como usar un data set desde mi conexion de la bdd a mi windows form...! q alguien me ayudeeee! agradezcoo! :D
 

Los últimos temas