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来过滤查询.
您无法自动将变量绑定到命令.您需要手动执行此操作,例如:
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)