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来过滤查询。

SQLDataAdapter添加where子句

您不能自动将变量绑定到命令中。您需要手动执行,例如:

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; 
        }