我有一个简单的类,我想从数据库中填充列表:
class Foreman
{
public int ForeBadge { get; set; }
public string ForeName { get; set; }
}
这是我的方法,应该返回 Foreman 对象的列表:
static public List<Foreman> getForeman()
{
connectionString.DataSource = "server";
connectionString.InitialCatalog = "db";
connectionString.UserID = "tunnelld";
connectionString.Password = "pw";
string queryString = "SELECT * FROM [QTRAXAdmin].[vwQT_Foreman]";
List<Foreman> list;
// Creates a SQL connection
using (var connection = new SqlConnection(connectionString.ToString()))
{
using (var command = new SqlCommand(queryString, connection))
{
connection.Open();
using (var reader = command.ExecuteReader())
{
list = new List<Foreman>();
while (reader.Read())
list.Add(new Foreman { ForeBadge = reader.GetInt32(0), ForeName = reader.GetString(1) });
}
}
connection.Close();
return list;
}
该方法在 list.Add(new Foreman { ForeBadge = reader.GetInt32(0), ForeName = reader.GetString(1) });
其中:System.Data.dll 中发生类型为“System.InvalidCastException”的未处理异常
对我来说,我似乎使用了正确的变量类型。我做错了什么?
最佳答案
尝试在查询中显式使用字段名称,以确保列按照您认为的顺序返回。这是我看到的最可疑的事情。或者,您可以在 using block 中使用列名称。当然,还要仔细检查数据库中的列定义。
关于c# - 从数据库填充列表 - System.InvalidCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30334436/