您好我正在尝试将名称添加到组合框中,但我只得到一个结果。
while (reader.Read())
{
locationName = reader.GetString("locationName");
factoryLocationsCombo.Items.Add(locationName);
reader.NextResult();
}
不是正确的做法吗?
答案 0 :(得分:1)
它们不需要5
,它在读取批处理Transact-SQL语句的结果时使用。如果您有一个返回某些行的查询(这里指定了while(reader.Read())
行)并且您需要迭代这些记录,那么reader.NextResult();
将帮助您执行此迭代,因此您可以尝试像这样,删除while (reader.Read())
{
locationName = reader.GetString("locationName");
factoryLocationsCombo.Items.Add(locationName);
}
(defun member-2 (x xs)
(cond ((not xs) nil)
((equal x (car xs)) xs)
(t (member-2 x (cdr xs)))))
或者,您可以使用SQLDataAdapter将查询结果提供给DataTable,并简单地将该数据表绑定到ComboBox,无需为迭代而烦恼。
答案 1 :(得分:1)
您:
while (reader.Read())
已经迭代了你的结果。你不需要:
reader.NextResult()
要获得更好的方法,请遵循以下示例:
List<Location> locations = new Location();
while (reader.Read())
{
Location location = new Location();
location.ID = reader.GetInt("locationID");
location.Name = reader.GetString("locationName");
locationss.Add(location);
}
factoryLocationsCombo.DataSource = locations;
factoryLocationsCombo.DisplayMember = "Name";
factoryLocationsCombo.DataMember = "ID";
factoryLocationsCombo.DataBind();