Domanda

Sto cercando di visualizzare un DataGrid sull'applicazione mobile dopo aver letto un file CSV e elaborarlo.Ecco cosa ho finora:

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");
    }
}
.

Tutto ciò che ottengo è un componente della griglia di dati in bianco quando esegui la mia applicazione.Qualcuno può indicare il mio errore?o come farlo correttamente?

È stato utile?

Soluzione

prova senza dataset datagrid.datasource= dt;

Altri suggerimenti

Prova questo che aiuterebbe ...

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 });
.

invece di:

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

Prova:

dataGrid.SetDataBinding(ds, "myDt");
.

Questo ha l'effetto di impostare il DataSource e il datamember contemporaneamente.

Dovrebbe funzionare pure se si imposta anche il datasource sulla tabella all'interno del set di dati .. Qualcosa come:

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

Ricorda che un set di dati potrebbe contenere più di una tabella e dobbiamo dirlo esplicitamente quale utilizzare o dove cercare :)

HTH

Il problema non è possibile fare riferimento a DataSource a solo come DataSet dovrebbe essere qualcosa di simile al dataset.Datagabile ... Ecco un esempio

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

//
Populate dataset
//

mydatagrid.Datasource = DS.Tables[0];
.

Quindi, è necessario fare riferimento alla tabella all'interno del set di dati per visualizzare i dati ... Spero che questo aiuti ... :)

So che è molto tardi per rispondere .... Ma sarà utile per gli altri ...

DataSet ds = gridUpdate.GridUpdate();
.

(non preoccuparti di GridUpdate.GridUpdate () è la mia funzione per creare il set di dati)

dataGridView1.DataSource = ds.Tables[0]
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top