0

我想在阅读CSV文件并对其进行处理后,在我的移动应用程序上显示DataGrid。这是我到目前为止:DataGrid不显示数据

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

我得到的只是运行我的应用程序时的空白数据网格组件。有人能指出我的错误吗?或如何正确地做到这一点?

回答

1

Try without DataSet dataGrid.DataSource = dt;

+0

谢谢..只是这工作。但我确实看到使用数据集的示例。任何推理为什么它不起作用? –

0

相反的:

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

尝试:

dataGrid.SetDataBinding(ds, "myDt"); 

这有在同一时间设置数据源和数据成员的作用。

1

试试这个,这将有助于...

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

问题是你不能引用数据源到仅作为数据集应该是这样的Dataset.Datatable ... 这是一个例子

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

// 
Populate dataset 
// 

mydatagrid.Datasource = DS.Tables[0]; 

因此,在短期,你必须参考表中的数据集中显示数据... 希望这有助于... :)

+0

如果你找到答案,请将plz标记为答案... – 2012-05-21 12:49:38

0

它如果设置了数据源到DataSet里面的表格,以及应该工作以及..是这样的:

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

请记住,一个数据集可以包含多个表,我们必须明确告诉它使用哪一个或在哪里看:)

心连心

-1

我知道它很晚回答....但是,这将可帮助他人......

DataSet ds = gridUpdate.GridUpdate(); 

(不worr y关于gridUpdate.GridUpdate()其我的功能创建数据集)

dataGridView1.DataSource = ds.Tables[0]