none
Llenad un datagridview en tiempo de ejecucion con dataset RRS feed

  • Pregunta

  • He creado un dataset mediante codigo, en el diseño de mi form he agredado un datagridview el problema es que no se como "cargar" los datos del dataset al datagridview...

    Hasta ahorita lo que tengo es lo siguiente

                DataGrid dgvencargados = new DataGrid();
               
                //Ligar el datagrid con la fuente de datos
                dgvencargados.DataSource = dataSet;
                dgvencargados.DataMember = "Encargados";

    Obviamente dataSet ya esta creado, pero cuando ejecuto la aplicacion el datagridview aparece en "blanco" en el form solo se ve el contorno de donde se supone deberia de estar...

    Muchas gracias de antemano, ojala que me puedan ayudar.

    jueves, 11 de noviembre de 2010 4:40

Respuestas

  • hola

    si solo vas a cargar una tabla en el DataGridView, porque no usas un DataTable ?

    esto al final

    DataTable dt = new DataTable();
    adapter.Fill(dt);

    dataGridView1.DataSource = dt;

     

    algo como esto

    SqlConnection connection = new SqlConnection(connectionString);
    connection.Open();

    SqlCommand command = new SqlCommand("SELECT Nombre, NSS FROM dbo.Encargado;",connection);

    SqlDataAdapter adapter = new SqlDataAdapter(command);
    DataTable dt = new DataTable();
    adapter.Fill(dt);

    dataGridView1.DataSource = dt;

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta r4ul90 viernes, 12 de noviembre de 2010 0:49
    jueves, 11 de noviembre de 2010 17:26

Todas las respuestas

  • Aqui va un pequeño ejemplo

    private void FillDataGrid(string vRamo, string vCategoria, string strConexion)
    {
    string vPalabra = null;
    int vTipo = 1;
    SqlConnection sqlConexion = null;
    SqlCommand sqlComando = null;
    // Creamos la conexión
    sqlConexion = new SqlConnection(strConexion);
    sqlComando = new SqlCommand("LstEmpresas " + vRamo + vCategoria + vPalabra + vTipo , sqlConexion);
    try
    {
    sqlConexion.Open();
    SqlDataAdapter da = new SqlDataAdapter(sqlComando);
    //Llenar el Dataset
    DataSet ds = new DataSet();
    da.Fill(ds, "Empresas");
    //Configurar el DatGrid
    DataGrid dgEmpresas = new DataGrid();
    Page.Controls.Add(dgEmpresas);
    //Ligar el datagrid con la fuente de datos
    dgEmpresas.DataSource = ds;
    dgEmpresas.DataMember = "Empresas";
    dgEmpresas.DataBind();
    } // try

    catch // (Exception e) // Exception Removed
    {
    return;
    //throw new Exception("Error in FillDropDownLit -> " + e.ToString());
    } // catch
    finally
    {
    sqlComando.Dispose();
    sqlConexion.Close(); // Close Connection
    sqlConexion.Dispose();
    }
    return;
    }
    jueves, 11 de noviembre de 2010 8:08
  • hola

    que base de datos estas utilizando ?

     

    ademas porque creas una instancia de DataGrid ? si lo tiens en tu formulario sua directo el nombre que le has dato, esta liena no deberias usarla

    DataGrid dgvencargados = new DataGrid();

     

    para cargar el dataset podrias usar

    using (SqlConnection conn = new SqlConnection("connection string")) {

        string query = "select * from NombreTabla";

        SqlCommand cmd = new SqlCommand(query, conn);

        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
        DataSet sa = new DataSet();
        Da.Fill(ds);

        DataGridView1.DataSoruce = ds.Tables(0);
    }

     

     

    ADO.NET - Parte 1 - Recuperar Informaci ó n Sql Server

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Propuesto como respuesta Diego Mendoza jueves, 11 de noviembre de 2010 14:58
    jueves, 11 de noviembre de 2010 11:54
  • Creo que me falta una "libreria" para usar Page.Controls.Add();

    Que cabecera deberia agregar a mi programa para que funcione? Gracias por tu ayuda de verdad

    jueves, 11 de noviembre de 2010 14:50
  • Estoy usando sql connection en el codigo esta es la linea donde creo la conexion:

     

    SqlConnection connection = new SqlConnection(connectionString);

     

    jueves, 11 de noviembre de 2010 14:51
  • hola

    que base de datos estas utilizando ?

     

    ademas porque creas una instancia de DataGrid ? si lo tiens en tu formulario sua directo el nombre que le has dato, esta liena no deberias usarla

    DataGrid dgvencargados = new DataGrid();

     

    para cargar el dataset podrias usar

    using (SqlConnection conn = new SqlConnection("connection string")) {

        string query = "select * from NombreTabla";

        SqlCommand cmd = new SqlCommand(query, conn);

        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
        DataSet sa = new DataSet();
        Da.Fill(ds);

        DataGridView1.DataSoruce = ds.Tables(0);
    }

     

     

    ADO.NET - Parte 1 - Recuperar Informaci ó n Sql Server

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    Al parecer tengo uno error cuando ejecuto:

    OleDbDataAdapter da = new OleDbDataAdapter(cmd);

    El error decia que cmd no era un oledbcommand...

    Pero de la pagina de msdn encontre instrucciones para llenar un dataset, creo que me funciona bien porque he visto cuantas tablas hay y coincide con las tablas que obtuve mediante el sql command, sin embargo no puedo visualizar en el form el datagridview, no muestra ninguna tabla solo se ve el contorno de donde se supone deberia de estar. Muchisimas gracias por su ayuda

    Adjunto el codigo que he utilizado

    //Create a SqlDataAdapter for the Suppliers table.
          SqlDataAdapter adapter = new SqlDataAdapter();
    
    // A table mapping names the DataTable.
          adapter.TableMappings.Add("Table", "Encargado");
          
          SqlConnection connection = new SqlConnection(connectionString);
          connection.Open();
          label1.Text = connectionString;
          
    // Create a SqlCommand to retrieve data.
          SqlCommand command = new SqlCommand("SELECT Nombre, NSS FROM dbo.Encargado;",connection);
          command.CommandType = CommandType.Text;
    
    // Set the SqlDataAdapter's SelectCommand.
          adapter.SelectCommand = command;
          
    // Fill the DataSet.
          DataSet dataSet = new DataSet("Encargados");
          adapter.Fill(dataSet);
          label2.Text = dataSet.Tables.Count.ToString();
          
          dataGridView1.DataSource = dataSet;

    jueves, 11 de noviembre de 2010 16:07
  • hola

    si solo vas a cargar una tabla en el DataGridView, porque no usas un DataTable ?

    esto al final

    DataTable dt = new DataTable();
    adapter.Fill(dt);

    dataGridView1.DataSource = dt;

     

    algo como esto

    SqlConnection connection = new SqlConnection(connectionString);
    connection.Open();

    SqlCommand command = new SqlCommand("SELECT Nombre, NSS FROM dbo.Encargado;",connection);

    SqlDataAdapter adapter = new SqlDataAdapter(command);
    DataTable dt = new DataTable();
    adapter.Fill(dt);

    dataGridView1.DataSource = dt;

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta r4ul90 viernes, 12 de noviembre de 2010 0:49
    jueves, 11 de noviembre de 2010 17:26