如何检查数据集中的空值

时间:2017-11-20 08:38:23

标签: c# asp.net datetime dataset

这是我的代码

lbltrialval.Text = Convert.ToDateTime(ds.Tables[0].Rows[0].Field<DateTime>("PretrailOrderDate")).ToString("MM/dd/yyyy");

我收到错误

  

“无法将DBNull.Value强制转换为'System.DateTime'。请使用a   可空的类型。“

如何在分配值时检查空值?

5 个答案:

答案 0 :(得分:3)

你可以使用它。

if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
    if (ds.Tables[0].Rows[0]["PretrailOrderDate"] != DBNull.Value)
    {
        lbltrialval.Text = Convert.ToDateTime(ds.Tables[0].Rows[0].Field<DateTime>("PretrailOrderDate")).ToString("MM/dd/yyyy");
    }
}

答案 1 :(得分:0)

尝试

lbltrialval.Text = Convert.ToDateTime(ds.Tables[0].Rows[0].Field<DateTime?>("PretrailOrderDate")).ToString("MM/dd/yyyy");

答案 2 :(得分:0)

if (ds.Tables[0].Rows[0].Field<DateTime>("PretrailOrderDate") != System.DBNull.Value)
{
    Convert.ToDateTime(ds.Tables[0].Rows[0].Field<DateTime>("PretrailOrderDate")).ToString("MM/dd/yyyy");
}

答案 3 :(得分:0)

检查DBNull

lbltrialval.Text = ds.Tables[0].Rows[0]["PretrailOrderDate"] != DBNull.Value ?
                   Convert.ToDateTime(ds.Tables[0].Rows[0].Field<DateTime>("PretrailOrderDate")).ToString("MM/dd/yyyy") : "";

答案 4 :(得分:0)

if(ds.Tables[0].Rows[0]["PretrailOrderDate"] == DBNull.Value)
{
    //Action to take if null value
}
else
{
    try
    {
        lbltrialval.Text = Convert.ToDateTime(ds.Tables[0].Rows[0]
        .Field<DateTime>("PretrailOrderDate")).ToString("MM/dd/yyyy");
    }
    catch(Exception e)
    {
        //Conversion Error
        Console.WriteLine(e.Message);
    }
}