Best way to check if a Data Table has a null value in it

前端 未结 6 1225
感情败类
感情败类 2020-11-27 02:34

what is the best way to check if a Data Table has a null value in it ?

Most of the time in our scenario, one column will have all null values.

(This datatabl

相关标签:
6条回答
  • 2020-11-27 03:18

    Try comparing the value of the column to the DBNull.Value value to filter and manage null values in whatever way you see fit.

    foreach(DataRow row in table.Rows)
    {
        object value = row["ColumnName"];
        if (value == DBNull.Value)
            // do something
        else
            // do something else
    }
    

    More information about the DBNull class


    If you want to check if a null value exists in the table you can use this method:

    public static bool HasNull(this DataTable table)
    {
        foreach (DataColumn column in table.Columns)
        {
            if (table.Rows.OfType<DataRow>().Any(r => r.IsNull(column)))
                return true;
        }
    
        return false;
    }
    

    which will let you write this:

    table.HasNull();
    
    0 讨论(0)
  • 2020-11-27 03:21

    I will do like....

    (!DBNull.Value.Equals(dataSet.Tables[6].Rows[0]["_id"]))
    
    0 讨论(0)
  • 2020-11-27 03:21
    DataTable dt = new DataTable();
    foreach (DataRow dr in dt.Rows)
    {
        if (dr["Column_Name"] == DBNull.Value)
        {
            //Do something
        }
        else
        {
            //Do something
        }
    }
    
    0 讨论(0)
  • 2020-11-27 03:33
    foreach(DataRow row in dataTable.Rows)
    {
        if(row.IsNull("myColumn"))
            throw new Exception("Empty value!")
    }
    
    0 讨论(0)
  • 2020-11-27 03:33

    You can loop throw the rows and columns, checking for nulls, keeping track of whether there's a null with a bool, then check it after looping through the table and handle it.

    //your DataTable, replace with table get code
    DataTable table = new DataTable();
    bool tableHasNull = false;
    
    foreach (DataRow row in table.Rows)
    {
        foreach (DataColumn col in table.Columns)
        {
            //test for null here
            if (row[col] == DBNull.Value)
            {
                tableHasNull = true;
            }
        }
    }
    
    if (tableHasNull)
    {
        //handle null in table
    }
    

    You can also come out of the foreach loop with a break statement e.g.

    //test for null here
    if (row[col] == DBNull.Value)
    {
        tableHasNull = true;
        break;
    }
    

    To save looping through the rest of the table.

    0 讨论(0)
  • 2020-11-27 03:34

    You can null/blank/space Etc value using LinQ Use Following Query

       var BlankValueRows = (from dr1 in Dt.AsEnumerable()
                                      where dr1["Columnname"].ToString() == ""
                                      || dr1["Columnname"].ToString() == ""
                                       || dr1["Columnname"].ToString() == ""
                                      select Columnname);
    

    Here Replace Columnname with table column name and "" your search item in above code we looking null value.

    0 讨论(0)
提交回复
热议问题