Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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#)筛选DataGridView_C#_Database_Winforms_Datagridview - Fatal编程技术网

使用文本框(C#)筛选DataGridView

使用文本框(C#)筛选DataGridView,c#,database,winforms,datagridview,C#,Database,Winforms,Datagridview,我试图通过使用文本框过滤我的dgv(通过数据库) 我遇到的问题是,当我在文本框中输入有效的项目名称时,我得到一个错误,告诉我没有在文本框中输入有效的列名…这很奇怪…因为我非常确定我让它按名称查找项目,而不是查找列:/ 这是我的密码: private void button3_Click(object sender, EventArgs e) { //CLEAR CURRENT DATA IN DGV datagridview1.Rows.

我试图通过使用文本框过滤我的dgv(通过数据库)

我遇到的问题是,当我在文本框中输入有效的项目名称时,我得到一个错误,告诉我没有在文本框中输入有效的列名…这很奇怪…因为我非常确定我让它按名称查找项目,而不是查找列:/

这是我的密码:

     private void button3_Click(object sender, EventArgs e)
        {
        //CLEAR CURRENT DATA IN DGV
        datagridview1.Rows.Clear();
        datagridview1.Refresh();

        Connection();
        sqlconnection.Open();

        using (sqlcmd = new SqlCommand("SELECT * FROM inventory_table WHERE Item= " + searchbox.Text, sqlconnection))
        {
           using (SqlDataReader sqldr = sqlcmd.ExecuteReader())
           {
                while (sqldr.Read())
                {
                    datagridview1.Rows.Add(new object[]{
                    sqldr.GetValue(sqldr.GetOrdinal("Item")),
                    sqldr.GetValue(sqldr.GetOrdinal("Quantity")),
                    sqldr.GetValue(sqldr.GetOrdinal("id")),
                });
                }

                sqldr.Close();
            }
        }
        sqlconnection.Close();
    }

如何修复此问题?

您可能在SQL读取中引用了错误的列名:

sqldr.GetValue(sqldr.GetOrdinal("id")), // Check that "id" and other columns are correct.

用数据库中的内容仔细检查这些列引用的拼写和大小写

代码在我看来很好。。。调试并查看中的值searchbox@Rusty这就是问题所在,我已经尝试了所有我能做的事情:/唯一有效的时候是当我输入一个有效的数据库表列名时。但如果我输入了有效的项目名称,它将不起作用。您应该使用@Otiel参数worked:)谢谢@Otiel认为SQL参数是实现这一点的正确方法,这一点是正确的。但是,您之前出现该错误的原因是,您没有将
searchBox.Text
嵌入到单引号中。所以它应该是
Item='“+searchBox.Text=“”