DataGrid non visualizza i dati
-
12-12-2019 - |
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?
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]
.