如何处理 Null 值的 ExcuteScalar 异常?

How to handle ExcuteScalar exceptions on Null values?

我有一个问题,如果值 returned 不为空,此方法有效,但是当 return 为空时,我得到一个 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();

问题出在这一行:

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

改为使用

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

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

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