【发布时间】:2014-12-21 00:22:21
【问题描述】:
我目前正在处理一项任务,试图从 SQL Server 数据库中获取值并将它们存储在一个数组中。我的连接很好,但是我无法将返回的值放入数组中。
这是我所拥有的,自从我提出这个问题以来,它已经有所改变:
public int Bay;
int temp;
[DataContract]
public Garage()
{
List<Garage> Bays = new List<Garage>();
SqlConnection connection = new SqlConnection("Data Source=fastapps04.qut.edu.au;Initial Catalog=*******;User ID=******;Password=******");
connection.Open();
SqlCommand command = new SqlCommand("SELECT Bay FROM Garage", connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
temp = reader.GetOrdinal("Bay");
Bays.Add(temp);
}
Bays.ToArray();
reader.Close();
connection.Close();
}
在
处得到错误Bays.Add(temp)
【问题讨论】:
-
欢迎来到 SO!请注意,在数据合约中进行数据访问很奇怪。数据契约用于接受或返回数据,通常不用于数据访问。
-
您正在尝试构建一个车库列表,因此您应该给出车库对象的完整定义,不仅是它的构造函数,还应该给出数据库中数据表车库中的字段是什么?您需要一一阅读并将它们添加到您的车库模型属性中
-
reader.GetOrdinal("Bay")将获取Bay列的列序号(即数字) - 对于读取的每一行。请参阅SqlDataReader.GetOrdinal上的 MSDN 文档。 -
您从查询中读取的
temp变量是int- 但是,Bays是Garage对象的列表。那些不兼容。您需要创建一个Garage实例,从读取器中填充其值,然后将Garage对象添加到Bays列表中。 -
@christiandev Garage 只是一个 SQL 数据库,其中一列 int 表示托架编号
标签: c# sql-server list store toarray