我想将DateTime数据存储到List中。我尝试了下面的代码,但是抛出了上面的异常。 请提出一些解决方案。
SqlDataReader dr;
con.Open();
dr = cmd.ExecuteReader();
List<DateTime> fdate = new List<DateTime>();
try
{
if (dr.HasRows)
{
while (dr.Read())
{
fdate.Add(Convert.ToDateTime(dr.ToString()));
}
}
}
catch (Exception)
{
throw;
}
答案 0 :(得分:1)
自从我使用DataReaders以来已经有一段时间了,但是你不必指定列名或索引吗?在您的代码中,您正在尝试将DataReader转换为DateTime对象。
fdate.Add(Convert.ToDateTime(dr.ToString()));
您需要在DataReader中指定要转换的列:
fdate.Add(Convert.ToDateTime(dr["column name"].ToString()));
即便如此,在转换之前你还需要检查空值。