从C#中的DataTable获取单元格值

这是一个DataTable dt ,它有很多数据。

我想从DataTable中获取特定的Cell值 ,比如Cell [i,j] 。 哪里,我 – >行和j – >列。 我将用两个forloops迭代i,j的值。

但我无法弄清楚如何通过索引调用单元格。

这是代码:

 for (i = 0; i <= dt.Rows.Count - 1; i++) { for (j = 0; j <= dt.Columns.Count - 1; j++) { var cell = dt.Rows[i][j]; xlWorkSheet.Cells[i + 1, j + 1] = cell; } } 

DataRow还有一个索引器 :

 Object cellValue = dt.Rows[i][j]; 

但我更喜欢强类型的Field扩展方法,它也支持可空类型 :

 int number = dt.Rows[i].Field(j); 

或者甚至更易读,并且更容易出错,并且列名称:

 double otherNumber = dt.Rows[i].Field("DoubleColumn"); 

您可能需要从Rows而不是单元格引用它:

 var cellValue = dt.Rows[i][j]; 

您可以像这样迭代DataTable

 private void button1_Click(object sender, EventArgs e) { for(int i = 0; i< dt.Rows.Count;i++) for (int j = 0; j  

根据DataTable单元格中数据的类型,您可以将对象强制转换为您想要的任何对象。

您也可以直接在datatable变量上调用索引器:

 var cellValue = dt[i].ColumnName 

试试这个

 var ds = new DataSet(); var cellValue = (ds.Rows[0][1]).ToString(); 

如果我正确理解了您的问题,您想显示填充数据表的一个特定单元格? 这是我用来在DataGrid中显示给定单元格的内容。

 var s = dataGridView2.Rows[i].Cells[j].Value; txt_Country.Text = s.ToString(); 

希望这可以帮助