C#将mySQL结果添加到组合框中

时间:2017-01-11 11:45:57

标签: c# mysql combobox

您好我正在尝试将名称添加到组合框中,但我只得到一个结果。

while (reader.Read())
{
    locationName = reader.GetString("locationName");
    factoryLocationsCombo.Items.Add(locationName);
    reader.NextResult();
}

不是正确的做法吗?

2 个答案:

答案 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();