【发布时间】:2017-08-23 02:59:23
【问题描述】:
我通过 ExecuteReader() 从 SQL 数据库中读取数据。 没有数据满足条件,但 HasRow 返回 true。当我尝试从阅读器读取数据时,出现异常: '数据为空。不能对 Null 值调用此方法或属性。'
SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
try
{
if (reader.Read())
{
string aa = reader.GetFieldType(0).Name; // aa returns 'DateTime'
dateStart.MinDate = reader.GetDateTime(0); //exception on this line
dateEnd.MinDate = reader.GetDateTime(0);
dateStart.Value = reader.GetDateTime(0);
}
}
finally
{
reader.Close();
}
提前致谢 乌斯杰沃
【问题讨论】:
-
您是否使用
if (reader.IsDBNull(0))或三元运算符检查了该值?如果对应的字段值为空,则不能使用GetDateTime。 -
非常感谢!它有效:)
标签: c# sql-server sqldatareader no-data