【发布时间】:2011-06-09 10:40:35
【问题描述】:
我在数据库中的一张表中有 Views 字段。起初我允许它取空值,现在它不允许它取空值。问题是,当我将 SqlReader 实例转换为 int 时,会引发异常。代码如下:
try
{
conn.Open();
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (dr != null && dr.Read() && dr["Views"] != null && dr["PageNumber"] != null && dr["Replies"]!=null)
{
Name = dr["Name"].ToString();
ThreadName = dr["ThreadTitle"].ToString();
Views = int.Parse(dr["Views"].ToString());//it is being thrown here when i try to convert it to an int..How can i prevent that mistake from being thrown?
Replies = int.Parse(dr["Replies"].ToString());
Topic = dr["Theme"].ToString();
Subtopic = dr["Topics"].ToString();
PageNumber = int.Parse(dr["PageNumber"].ToString());
Time = (DateTime)dr["Time"];
}
dr.Close();
}
【问题讨论】:
-
可能存在空值,您是否检查了 dr["Views"].ToString() 的值
-
如果你读了我的问题,你会注意到我说我确实允许空值