Pregunta

Estoy tratando de mostrar un DataGrid en mi aplicación móvil después de leer un archivo CSV y procesándolo.Aquí está lo que tengo hasta ahora:

private void btOpenFile_Click(object sender, EventArgs e)
{
    try 
    {           
        // Process all data into an array of Object 
        // this.records array contains objects of type MyRecord

        // Create datatable and define columns
        DataTable dt = new DataTable("myDt");
        dt.Columns.Add( new DataColumn("String A",typeof(string)));
        dt.Columns.Add( new DataColumn("Int 1", typeof(int)));                   

        // Loop through and create rows
        foreach(MyRecord record in records) {
            DataRow row = dt.NewRow();                        
            row[0] = record.stringA;
            row[1] = record.int1;
            dt.Rows.Add(row);
        }   

        // Create dataset and assign it to the datasource..
        DataSet ds = new DataSet("myDs");
        ds.Tables.Add(dt);                                          
        dataGrid.DataSource = ds;
        dataGrid.Refresh();

    }
    catch (Exception ex)
    {
        MessageBox.Show("Error: " + ex.Message,"Error");
    }
}

Todo lo que recibo es un componente de cuadrícula de datos en blanco al ejecutar mi solicitud.¿Alguien puede señalar mi error?¿O cómo hacerlo correctamente?

¿Fue útil?

Solución

intento sin conjunto de datos datagrid.datasource= dt;

Otros consejos

Pruebe esto, ayudaría a ...

DataSet Ds = new DataSet();
DataTable Dt = new DataTable();

Ds.Tables.Add(Dt);
Dt.Columns.Add(new DataColumn("String A", typeof(string)));                
Dt.Columns.Add(new DataColumn("Int 1", typeof(int)));      

Dt.Rows.Add(new object[] { "Patricia", 3 });
Dt.Rows.Add(new object[] { "John", 4 });
Dt.Rows.Add(new object[] { "Mayer", 5 });

en lugar de:

dataGrid.DataSource = ds;         
dataGrid.Refresh(); 

intento:

dataGrid.SetDataBinding(ds, "myDt");

Esto tiene el efecto de establecer el DataSource y DatAmember al mismo tiempo.

También debería funcionar si configura el DataSource en la mesa dentro del conjunto de datos también ... Algo como:

datagrid.DataSource = ds.Tables["myDt"];

Recuerde que un conjunto de datos podría contener más de una tabla y tenemos que decirle explícitamente cuál usar o dónde mirar:)

hth

El problema es que no puede referir el DataSource a solo como conjunto de datos, debe ser algo como DataSet.Datable ... Aquí es un ejemplo

Dataset DS = new Dataset();
DS.Tables.Add(TableName);

//
Populate dataset
//

mydatagrid.Datasource = DS.Tables[0];

En resumen, debe referirse a la tabla dentro del conjunto de datos para mostrar los datos ... Espero que esto ayude ... :)

Sé que es muy tarde para responder ... pero será útil para otros ...

DataSet ds = gridUpdate.GridUpdate();

(no te preocupes por gridupdate.gridupdate () es mi función para crear un conjunto de datos)

dataGridView1.DataSource = ds.Tables[0]

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top