Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文本从数据库C#DataColumnCollection返回到按钮_C#_Ms Access 2013 - Fatal编程技术网

将文本从数据库C#DataColumnCollection返回到按钮

将文本从数据库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

我正在尝试构建一个POS系统,目前我有一个access数据库,它将我的所有菜单项存储为字符串。 我希望按钮(存储在数组中)显示此文本

目前,我的算法适用于数据库中的单个项目,没有任何问题,但是,当我增加条目数量时,会出现以下错误:

奇怪的是,
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该如何操作?你能试着写一个示例算法吗?啊,非常感谢。我不太明白那值多少钱。