这段代码:

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....
}

09-28 14:33