将文本从数据库C#DataColumnCollection返回到按钮
我正在尝试构建一个POS系统,目前我有一个access数据库,它将我的所有菜单项存储为字符串。 我希望按钮(存储在数组中)显示此文本 目前,我的算法适用于数据库中的单个项目,没有任何问题,但是,当我增加条目数量时,会出现以下错误: 奇怪的是,将文本从数据库C#DataColumnCollection返回到按钮,c#,ms-access-2013,C#,Ms Access 2013,我正在尝试构建一个POS系统,目前我有一个access数据库,它将我的所有菜单项存储为字符串。 我希望按钮(存储在数组中)显示此文本 目前,我的算法适用于数据库中的单个项目,没有任何问题,但是,当我增加条目数量时,会出现以下错误: 奇怪的是,dr[count].ToString()返回正确的数据。 这是我的代码: private void main_Click(object sender, EventArgs e) { Database db = new Da
dr[count].ToString()根据我的判断,代码>返回正确的数据。
这是我的代码:
private void main_Click(object sender, EventArgs e)
{
Database db = new Database();
DataRowCollection dra = db.ReturnDataRowCollection("SELECT itemname FROM menuitems WHERE Category = 'main'");
int count = 0;
foreach (DataRow dr in dra)
{
btns[count].Text = dr[count].ToString();
btns[count].Visible = true;
count++;
}
}
起动器和main的代码完全相同
作为参考,这是我的Access数据库的屏幕截图:
试试这个:
private void main_Click(object sender, EventArgs e)
{
Database db = new Database();
DataRowCollection dra = db.ReturnDataRowCollection("SELECT itemname FROM menuitems WHERE Category = 'main'");
int count = 0;
foreach (DataRow dr in dra)
{
btns[count].Text = dr["itemname"].ToString();
btns[count].Visible = true;
count++;
}
}
据我所知,您的所有按钮文本都存储在同一列中。只有行是不同的。所以这段代码应该可以工作。请尝试此操作,并让我知道它是否有效……索引自动失效当您尝试使用位于范围之外的索引处的元素时,会引发异常。您需要确保定义了btn[count]
和dr[count]
。我相信您的问题在于dr[count]
,因为您试图在count
索引中的每一行中找到元素。除非每行中的按钮位于具有该行索引的列上,否则这就是问题所在。我相信您所有的按钮都位于同一列。似乎您使用了数据行中的错误值。使用dr[0].ToString()。因为您正在为每个数据行循环&数据行中只有一列。@anupam sharma我有多个列,所以我需要做哪些更改?您可以将列名像dr[“itemname”]。ToString()一样放置。如果您正在读取此列值。@anupam sharma该如何操作?你能试着写一个示例算法吗?啊,非常感谢。我不太明白那值多少钱。