2

このコード:

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に一致するレコードがありません)が、それでこの問題が発生することはありませんか?

4

1 に答える 1

8

何も見つからない場合は、おそらく.ExecuteScalar()戻ってきているので、...NULLを呼び出すのは得策ではありません。.ToString()NULL

コードを次のように変更する必要があります。

object result =  ocmd.ExecuteScalar();

if(result != null)
{
    SidFinch = result.ToString();
} 
else
{
     // do whatever is appropriate here....
}
于 2012-05-31T20:21:49.760 に答える