【发布时间】:2017-01-07 22:45:34
【问题描述】:
我有一张名为Product 的表。此表的其中一列称为Naam。这是产品的名称。当您按下按钮时,所有产品名称都必须添加到组合框中。
如果我有 2 种产品:可乐和芬达。
程序必须在组合框中仅显示Naam 列。不是其他列。
我的按钮已经有了这个,但它不起作用。
db.AlleProducten("Select Naam from Product;", Product);
cb_product.Items.Add(Product.Naam);
这是运行查询的方法:
public void AlleProducten(string commandText, product Product)
{
using (SqlConnection conn = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(commandText, conn))
{
conn.Open();
using (var rdr = cmd.ExecuteReader())
{
if (rdr.HasRows)
{
rdr.Read();
Product.Naam = rdr.GetString(1);
conn.Close();
}
}
}
}
错误:
System.Data.dll 中出现“System.IndexOutOfRangeException”类型的未处理异常
附加信息:De index ligt buiten de matrixgrenzen。
附加信息为荷兰语。翻译成英文:
索引位于数组边界之外。
【问题讨论】:
-
你没有填充任何组合框。
-
您的查询中只有一列。可以使用索引 0 而不是索引 1 检索此列。在 NET 数组中,索引从零开始
-
所以因为我已经在查询中只选择了 1 列,所以我只有 1 列?以为我需要整个表的索引。
-
没错,SqlDataReader 内部数组的维度是根据检索到的列数。
标签: c# sql sql-server visual-studio executereader