SQLDataAdapter添加where子句
本文关键字:子句 where 添加 SQLDataAdapter | 更新日期: 2023-09-27 18:18:59
我有一个名为recordID
的文本框我使用以下命令声明了一个名为ID
的变量:
int ID = Convert.ToInt32(recordID.Text);
最后,我有一些代码,刷新一个网格视图后,一个按钮已经点击工作完美,但是,带回表中的一切:
using (SqlDataAdapter a = new SqlDataAdapter("SELECT * FROM TEST_TABLE", conn))
{
// Use DataAdapter to fill DataTable
DataTable t = new DataTable();
a.Fill(t);
// Render data onto the screen
gridSelectID.DataSource = t;
}
我需要修改查询,以便它添加一个where并根据上面提到的ID值(取自recordID)对其进行过滤。文本(文本框)
我已经试过了:
using (SqlDataAdapter a = new SqlDataAdapter("SELECT * FROM TEST_TABLE WHERE ID = filter", conn))
{
int filter = ID;
// Use DataAdapter to fill DataTable
DataTable t = new DataTable();
a.Fill(t);
// Render data onto the screen
gridSelectID.DataSource = t;
}
但它抱怨Invalid Column name 'filter'
我需要通过在代码顶部声明的ID来过滤查询。
您不能自动将变量绑定到命令中。您需要手动执行,例如:
using (SqlDataAdapter a = new SqlDataAdapter("SELECT * FROM TEST_TABLE WHERE ID = @filter", conn))
{
int filter = ID;
a.SelectCommand.Parameters.AddWithValue("@filter", filter);
using (SqlDataAdapter a = new SqlDataAdapter(string.Format("SELECT * FROM TEST_TABLE WHERE ID = '{0}'",ID), conn)) {
// Use DataAdapter to fill DataTable
DataTable t = new DataTable();
a.Fill(t);
// Render data onto the screen
gridSelectID.DataSource = t;
}