我使用下面的代码在c#中执行标量sql查询。 有时它会因为NullReferenceException而失败,我设置了' res'。 任何想法为什么这有时会发生? (也许当我同时做几个查询时) 注意:我使用相同的查询...有时它返回null。
public void ExecScalarQuery(String query)
{
OracleConnection conn = new OracleConnection(connectionString);
try
{
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = query;// "select count(*) from SALES_ADVENTUREWORKS2012.SALESORDERDETAIL where PRODUCTID=709";
cmd.CommandType = CommandType.Text;
cmd.CommandTimeout = QUERY_TIMEOUT;
String res = cmd.ExecuteScalar().ToString();
}
finally
{
conn.Close();
}
}
答案 0 :(得分:2)
ExecuteScalar()
可能会返回null
值,这并不意外。简单地说,它发生的原因是您运行的查询没有返回结果集。
当发生这种情况时,你应该注意抓住它:
String res = "";
Object o = cmd.ExecuteScalar();
if (o != null)
res = o.ToString();