SQLDataAdapter添加where子句

Jso*_*ham 0 c# sql sqldataadapter

我有一个名为recordID I声明的变量的文本框ID,使用以下命令调用:

int ID = Convert.ToInt32(recordID.Text);
Run Code Online (Sandbox Code Playgroud)

最后,我有一些代码在单击按钮后刷新gridview,它完美地工作,但是,带回表中的所有内容:

        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; 
        }
Run Code Online (Sandbox Code Playgroud)

我需要在查询被更改时更改它,以便它添加一个where并过滤它上面提到的ID的值(取自recordID.Text,这是一个文本框)

我试过这个:

        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; 
        }
Run Code Online (Sandbox Code Playgroud)

但它抱怨Invalid Column name 'filter' 我需要通过在代码顶部声明的ID来过滤查询.

Joe*_*nos 5

您无法自动将变量绑定到命令.您需要手动执行此操作,例如:

using (SqlDataAdapter a = new SqlDataAdapter("SELECT * FROM TEST_TABLE WHERE ID = @filter", conn))
{
    int filter = ID;
    a.SelectCommand.Parameters.AddWithValue("@filter", filter);
Run Code Online (Sandbox Code Playgroud)