使用TextBox过滤DataGridView(C#)

时间:2015-03-27 21:25:06

标签: c# database winforms datagridview

我试图通过使用文本框过滤我的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();
    }

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

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

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

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