lunes, 5 de abril de 2010

Objetos Command,DataSet y SqlDataAdapter

En este post le mostraremos estos tres objetos, Command,Dataset y SqlDataAdapter. Comenzamos con el Command, ese es el objeto que utilizamos para ejecutar sentencias en nuestra base de datos desde nuestra aplicación y atraves de una conexión SqlConnection que ya mostramos en un anterior post. El objeto command lo encontramos en nuestro visual Studio de dos formas o representada por dos clase, SqlCommand y OleDbCommand.


El objeto data set se conoce como una copia en memoria de nuestro modelo de datos o nuestra base de datos sobre la cual podemos realizar una sentencia y agregarla a otro objeto ya sea un DataGrid.Datasource , ComboBox .Datasource ,etc. Pero, para cargar un dataset con un Select por ejemplo debemos utilzar el objeto SqlDataAdapter que trabaja aqui como un intermediario entre la base de datos y el dataset. El SqlDataAdapter carga el dataset con la data desde la base de datos.

Veamos un ejemplo utilizando los tres objetos:

Creamos un dataset

Dataset ds = new Dataset();

Creamos un Command en este caso SqlCommand

SqlCommand cmd = new SqlCommand(consulta,con);

 en donde consulta es la variable que guarda la sentencia que deseamos realizar y con es el objeto connection que realizamos para poder conectarnos a la base de datos.

Luego creamos el DataAdapter

SqlDataAdapter ad = new SqlDataAdapter(cmd);  y le pasamos el Command para mantener el resultado de nuestra sentencia almacenado en el Adapter, y luego:

ad.Fill(ds);  Aqui le pasamos entre parentesis al metodo fill del adapter el objeto dataset que queremos llenar.

ya tenemos nuestro dataset cargado.  Si lo queremos mostrar en un datagrid hacemos lo siguiente:

mydatagrid.DataSource = ds;
Espero hayan disfrutado, recuerden que pueden dejar sus comentarios o cualquier pregunta nos pueden escribir a solocsharp@gmail.com y csharpenlinea@gmail.com. Hasta la proxima!.

6 comentarios:

  1. Gracias por tu comentario, me sirvio demasiado.
    Te cuento, tengo una duda, he visto en otros codigos de ejemplo que en la parte de ad.Fill(ds); hay un string despues de (ds) por ejemplo ad.fill(ds,"algo"), que significa que haya un string ahi???

    ResponderEliminar
  2. Saludos, Primeramente gracias por tu comentario. Bueno, El ad.Fill() es un método que puede recibir dos parámetros también, yo específicamente lo utilizo con uno pero ese segundo parámetro viene siendo la tabla sobre la que se realiza la consulta. Si nos ubicamos en el ejemplo de este post veríamos que donde tenemos "consulta" como la variable que guarda la sentencia seria mas o menos así por ejemplo: string consulta = " select * from Productos";
    entonces en el ad.fill(ds,"Productos")
    Yo no le veo la necesidad de indicarlo ahí también, pero como bien sabes, cada programador tiene su estilo pero tampoco estoy diciendo que este mal, solo que no lo utilizo. Espero que le haya sido útil mi respuesta. Gracias! ahh y perdón por la tardanza en darte respuesta!

    ResponderEliminar
  3. Muy bueno... te felicito!!! acabo de encontrar este blog sigue asi por favor, yo seguire visitandolo y lo recomdaré.

    soy principiante en esto y me esta sirviendo mucho

    ResponderEliminar
  4. Hola, tengo un problema.

    Paso el comand a el dataAdapter y luego del dataAdapter a un dataset
    y parece ser que no pasa nada, este es el codigo:


    ''el comando cuando lo ejecuto
    cmd.Connection = conexion

    ''creo el dataAdapter y le paso el command
    Dim DataAdapter As New SqlDataAdapter(cmd)

    ''luego creo el dataset
    Dim dsDataSet As New DataSet

    ''lo cargo
    DataAdapter.Fill(dsDataSet, "Tabla")

    ''y pregunto cuantas tablas tiene y me dice que cero
    If (dsDataSet.Tables.Count > 0) Then

    end if

    y el command si esta devolviendo datos, lo probe de esta forma

    cmd.ExecuteReader()

    Dim ID As String
    dim nombre as string
    ID = cmd.Parameters("@IDPais").Value
    nombre = cmd.Parameters("@nombre").Value

    si devuelve datos. No entiendo porque no funciona. Le agradesco la ayuda.

    Att: Jairo

    ResponderEliminar
  5. Camila

    Muchas gracias por la información de estos objetos, me ha servido bastante =)

    ResponderEliminar
  6. Baccarat - Rules, Strategy, Rules, Games, Tips, Odds
    Baccarat is a casino game febcasino where you can play for real money without even knowing what the rules are. Baccarat is considered a game of 바카라 사이트 luck and 샌즈카지노 luck.

    ResponderEliminar

DEJA UN COMENTARIO