ExecuteScalar()
有时会返回空对象(不是 null),尽管记录存在。当我用 Quickwatch 分析此对象时,发现 object.GetType()
等于 DbNull
。
我可以处理这个空对象,但我需要知道为什么有时会返回空对象,即使记录存在。
string sql = @"SELECT SentDate
FROM dbo.EmailOut
WHERE ID = @ID";
SqlCommand cmd = new SqlCommand(sql, _cnn);
cmd.CommandType = System.Data.CommandType.Text;
cmd.Parameters.Add(new SqlParameter("@ID", ID));
object obj = cmd.ExecuteScalar();
if (obj == null)
return false
sentDate = (DateTime)obj;
cmd.Dispose();
大多数情况下,我的查询运行得很完美。请您帮忙检查一下我的代码吗?
SentDate
列为空吗? - Soner GönülSqlCommand
包装在一个using
语句中。 - Squirrel5853