【发布时间】:2012-02-16 17:04:24
【问题描述】:
当代码尝试验证 SqlDataReader 是否在列中返回空值时,其中一个与我一起从事项目的人不断收到错误消息。他运行这段代码:
if (!DB_Conn.isConnected()) DB_Conn.Connect();
using (SqlDataReader dr = DB_Conn.QueryDB(query))
{
if (dr.HasRows && !dr.IsDBNull(0))
{
maxID = dr.GetInt32(0);
}
}
但是当 !dr.IsDBNull(0) 命令中没有数据时,会收到一个错误,它是一个无效的尝试读取。
如果我运行相同的代码但我查询不同的表,它可以工作。
另外,我运行这两个查询,它们返回预期的空值。查询是:
SELECT MAX(ID) FROM Loan;
SELECT MAX(ID) FROM InternationalSwap;
我认为查询不会对我们在一台机器上而不是另一台机器上收到此错误的原因产生任何影响。
【问题讨论】:
标签: c# asp.net sql-server sql-server-2008 sql-server-2005