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

时间:2014-09-09 12:31:54

标签: c# datatable

我有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" };

我想检查该数据表中每个值的空字符串的空值:

我试过了:

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].但我不知道如何获得价值

你能帮我吗?

6 个答案:

答案 0 :(得分:5)

使用索引器

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

答案 1 :(得分:1)

试试这个

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

答案 2 :(得分:0)

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

if(dt.Rows[i][j] != null && dt.Rows[i][j] != string.Empty)

您应该最小化检查条件(.Net提供和显式)。在您的情况下,尤其是因为您将检查DataTable的每个单元格,如果条件检查过多,可能会很昂贵。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

///当未从数据库捕获任何数据时,请尝试使用DataTable的此代码

DataTable dt = (arrg);
try { 

     statement 1...................
     statement 2...................
    ..........................
 }
catch (Exception ex)
{
    Alert Message of error
}

答案 5 :(得分:0)

对于C#的较新版本,您可以使用null-coalescing运算符完成很多不错的事情?因此,在这种情况下,您可以执行以下操作:

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

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

您可以在诸如此类的几篇文章中找到更多信息:

?? and ??= operators (C# reference)