如何处理Null值上的ExcuteScalar异常?

时间:2019-04-09 18:59:44

标签: c# executescalar

我有一个问题,如果返回的值不为null,则可以工作,但是当返回的值为null时,我得到一个System.NullreferenceException。我尝试了很多事情,但似乎无法破解。在这里的任何帮助将不胜感激。

string HwPlts = "select top 1 plts from (select sum(ISNULL(Heywood_Plts, 0)) as plts, date_Uploaded, time_Uploaded, Upload_ID from InboundRawData Group by date_Uploaded, time_Uploaded, dispatch_Date, Upload_ID having dispatch_Date = @prod_Date) as p order by Upload_ID desc";
SqlCommand cmd1001 = new SqlCommand(HwPlts, connection);
cmd1001.Parameters.AddWithValue("@prod_Date", dateTimePicker1.Text);
HWplt.Text = cmd1001.ExecuteScalar().ToString();

1 个答案:

答案 0 :(得分:1)

问题出在这条线上:

HWplt.Text = cmd1001.ExecuteScalar().ToString();

相反,使用

HWplt.Text = Convert.ToString(cmd1001.ExecuteScalar());

这避免了空引用异常,因为Convert.ToString()是静态方法。相比之下,ToString()是一个实例方法,它取决于要转换为字符串的特定对象的实现。

编辑:我应该补充一点,在大多数用例中,使用Convert.ToString()而不是Object.ToString()被认为是一种好习惯。