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

本文关键字:空值 null 数据表 检查 | 更新日期: 2023-09-27 18:21:08

我有一个DataTable,我这样初始化它:

dataTable = new DataTable();
dataTable.Clear();
for (int i = 0; i < labels.Length; i++)
{
    dataTable.Columns.Add(MyCSVReaderFinal.labels[i]);
}
return dataTable;

其中label是这样的字符串数组:

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].)){}
    }
}

但正如你所看到的,我尝试了这个:dt.Rows[i].,但我不知道如何获得值

你能帮我吗?

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

使用索引器

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和显式)。尤其是在您的情况下,因为您将检查DataTable的每个单元格,因为条件检查太多,这可能会很昂贵。

for (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
  }
}

//当没有从数据库捕获任何数据时,请为DataTable尝试此代码

DataTable dt = (arrg);
try { 
     statement 1...................
     statement 2...................
    ..........................
 }
catch (Exception ex)
{
    Alert Message of error
}

对于C#的新版本,您可以使用null合并运算符做一些非常好的事情??所以在这种情况下,你可以做:

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

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

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

并且??=运算符(C#参考)