为什么这个查询给我"对象引用未设置为对象的实例"?

B. *_*non 2 c# sql oracle dotconnect

这段代码:

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();
}
Run Code Online (Sandbox Code Playgroud)

...在"ExecuteScalar"行上失败.它没有找到任何东西(我传递的ID没有匹配的记录),但这不应该导致这个问题,是吗?

mar*_*c_s 8

如果它没有找到任何东西 - 那么大概.ExecuteScalar()是回来了,NULL并且召唤.ToString()一个NULL...... 不是一个好主意.

您需要将代码更改为:

object result =  ocmd.ExecuteScalar();

if(result != null)
{
    SidFinch = result.ToString();
} 
else
{
     // do whatever is appropriate here....
}
Run Code Online (Sandbox Code Playgroud)