我试图测试从SQL Server 2012 Express实例中检索某些信息并将其“添加”到列表中的方法。问题是,当我尝试运行测试,我得到的错误:当从SQL Server 2012 Express检索数据时出现“System.InvalidCastException”错误
"System.InvalidCastException"
下面是代码:
List<Reference> lst = new List<Reference>();
//DB Connections is a class instance that takes care of the
//connection with the db.
DBConnections db = new DBConnections(DbConfig.conStr);
db.UpdateCmd("SELECT * FROM freelancers_references");
SqlDataReader dr = db.ExecuteReader();
if (dr.HasRows) {
lst = dr.Cast<IDataRecord>().Select(r =>
new Reference {
Id = (int)dr["id"],
OwnerId = (int)dr["owner_id"],
Name = (string)dr["name"],
Active = (bool)dr["active"]
}).ToList<Reference>();
}
dr.Close();
return lst;
编辑: @丹提供一个工作的答案。尽管使用Convert.ToInt/ToString()等方法也有效。
可能的原因是在你的数据库空。 –
这似乎是这种情况。 – SpirosMesa