c#检查所有数据表值中的空值或空值

c#检查所有数据表值中的空值或空值,c#,datatable,C#,Datatable,我有一个数据表,我将其初始化如下: dataTable = new DataTable(); dataTable.Clear(); for (int i = 0; i < labels.Length; i++) { dataTable.Columns.Add(MyCSVReaderFinal.labels[i]); } return dataTable; private static string[] labels = { "FARM ID", "FARM OWNER ARABI

我有一个
数据表
,我将其初始化如下:

dataTable = new DataTable();
dataTable.Clear();
for (int i = 0; i < labels.Length; i++)
{
    dataTable.Columns.Add(MyCSVReaderFinal.labels[i]);
}
return dataTable;
private static string[] labels = { "FARM ID", "FARM OWNER ARABIC", "FARM NUMBER",
"FARM MOBILE", "EMAR NAME ARABIC", "EMARA ID", "AREA NAME ARABIC", "AREA ID",
"REGION NAME ARABIC", "REGION ID", "RECEIVING CENTER NAME ARABIC",
"RECEIVING CENTER ID", "KHALAS", "FARDH", "OTHER LULU", "KHENAIZI", "BOUMAAN",
"BARHI", "JESH KHARMA", "REZIZ", "JABRI", "ANBARET AL-MADINA", "SHISHI",
"DABBAS", "NABTET SAIF", "KHEDRAWI", "HILALI", "MAKTOUMY", "NAMISHI",
"SULTANAH", "BAQLAT AL-TAWAA", "BAQLAT AL-DAHLA", "BAQLAT AL-RARENJA", 
"SUKARY", "SAQEI", "ABU ZEBED", "MAJDOUL", "SHABIBI", "YOUWANI", "YARDI",
"KHADI", "HATIMI", "NEGHAL", "OTHER SAYER", "TOTAL FRUCTIFEROUS",
"TOTAL UN FRUCTIFEROUS", "TOTAL AFHAL", "GENERAL TOTAL", "SENIOR SUPERVISORS",
"ASSISTANT", "DATA ENTRY", "FARM ONWER OR BEHALF" };
我想将每个值的空字符串的null检查到该数据表中:

我试过这个:

for (int i = 0; i < dt.Rows.Count; i++) {
    for (int j = 0; j < dt.Columns.Count; j++) { 
        if(string.IsNullOrEmpty(dt.Rows[i].)){}
    }
}
for(int i=0;i
但正如您所看到的,我尝试了这个:
dt.Rows[I]。
但我不知道如何获取值

你能帮我吗?

使用索引器

dt.Rows[i][j] != null && string.IsNullOrEmpty(dt.Rows[i][j].ToString())
试试这个

 if(string.IsNullOrEmpty(dt.Rows[i][j].ToString()))

在@Selman22的回答之后: 仅为了执行
.ToString()
操作,不需要在
string.IsNullOrEmpty(string)
中再次检查null。 而是使用:

if(dt.Rows[i][j] != null && dt.Rows[i][j] != string.Empty)
您应该尽量减少检查条件(包括.Net提供的和显式的)。特别是在您的情况下,因为您将检查
数据表的每个单元格,如果条件检查过多,可能会很昂贵。

for(int numberOfCells=0;numberOfCellsfor (int numberOfCells = 0; numberOfCells < this.dataGridView1.Columns.Count; numberOfCells++)
{
  if (String.IsNullOrEmpty(this.dataGridView1.Rows[0].Cells[numberOfCells].Value as String))
  {
     //empty
  }
  else
  {
     //not empty
  }
}
{ if(String.IsNullOrEmpty(this.dataGridView1.Rows[0].Cells[numberOfCells].Value as String)) { //空的 } 其他的 { //不空 } }
//在未从数据库中捕获任何数据时,请为DataTable尝试此代码

DataTable dt = (arrg);
try { 

     statement 1...................
     statement 2...................
    ..........................
 }
catch (Exception ex)
{
    Alert Message of error
}
对于较新版本的C#来说,使用空合并操作符可以做很多事情??因此,在这种情况下,您可以:

if (string.IsNullOrEmpty(((dt?.Rows?[0][0]) ?? string.Empty).ToString()))

您可以在以下几篇文章中找到更多信息:


您想何时知道它是
null
还是空的?填桌子之前还是之后?还有,为什么,那你想做什么?基本上,您的问题可以简化为“如何通过列索引访问DataRow的字段?”这是经常被问到的问题,并且有很好的文档记录。@TimSchmelter我想这样做,因为我不断得到错误
数据源中给定的字符串类型值无法转换为指定目标列的nvarchar类型。
在将数据表插入我的sql大容量复制和Iread时,这是因为空字符串,但即使在应用下面的答案后,我仍然会得到该错误,您可以帮助吗?OP为什么要使用您的代码?请解释你的答案。这似乎不能回答问题。OP询问的是如何使用
DataTable
而不是
dataGridView1
if (string.IsNullOrEmpty((string)((dt?.Rows?[0][0]) ?? string.Empty)))