我试图通过使用文本框过滤我的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();
}
我该如何解决这个问题?
答案 0 :(得分:0)
您可能在SQL读取中引用了错误的列名:
sqldr.GetValue(sqldr.GetOrdinal("id")), // Check that "id" and other columns are correct.
使用数据库中的内容仔细检查这些列引用的拼写和大小写。