这段代码:
string SidFinch = "Unknown SidFinch";
String sql = @"SELECT SidFinch
FROM PlatypusDuckbillS
WHERE PlatypusSTARTDATE = :Duckbilldate AND
DuckbillID = :Duckbillid";
try {
using (OracleCommand ocmd = new OracleCommand(sql, oc)) {
ocmd.Parameters.Add("Duckbilldate", DuckbillDate);
ocmd.Parameters.Add("Duckbillid", DuckbillID);
SidFinch = ocmd.ExecuteScalar().ToString();
}
...在“ ExecuteScalar”行上失败。它没有找到任何东西(我传递的ID没有匹配的记录),但这不应该引起这个问题,对吗?
最佳答案
如果找不到任何内容,则.ExecuteScalar()
可能正在返回NULL
,在.ToString()
上调用NULL
并不是一个好主意。
您需要将代码更改为类似以下内容:
object result = ocmd.ExecuteScalar();
if(result != null)
{
SidFinch = result.ToString();
}
else
{
// do whatever is appropriate here....
}