此代码:
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没有匹配的记录),但这不应该导致这个问题,是吗?
答案 0 :(得分:8)
如果找不到任何内容 - 那么可能.ExecuteScalar()
正在返回NULL
,并且在.ToString()
....上调用NULL
不是一个好主意。 / p>
您需要将代码更改为:
object result = ocmd.ExecuteScalar();
if(result != null)
{
SidFinch = result.ToString();
}
else
{
// do whatever is appropriate here....
}