我正在c#.net中创建一个表单。我想仅在点击按钮时填充gridview
,条目符合搜索条件。
我已经尝试了但是在搜索ID时它可以工作但是在搜索FirstName时它会给出错误plz检查SQL。
代码背后:
private void button1_Click(object sender, EventArgs e)
{
try
{
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=L:/New project/Project/Project/Data.accdb";
string sql = "SELECT * FROM AddressBook WHERE FirstName='" + textBox1.Text.ToString();
OleDbConnection connection = new OleDbConnection(strConn);
OleDbDataAdapter dataadapter = new OleDbDataAdapter(sql, connection);
DataSet ds = new DataSet();
connection.Open();
dataadapter.Fill(ds, "AddressBook");
connection.Close();
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "AddressBook";
}
catch (System.Exception err)
{
this.label27.Visible = true;
this.label27.Text = err.Message.ToString();
}
}
答案 0 :(得分:0)
你忘记了databind();
dataGridView1.DataSource = ds;
dataGridView1.DataBind();
"SELECT * FROM AddressBook WHERE FirstName Like '%" + textBox1.Text + "%'";
但是请记住这个SQL查询容易受到SQL注入攻击,所以请确保在完成所有工作后过滤掉不良字符
您的错误是由于您未关闭查询而产生的
FirstName='" + textBox1.Text.ToString();
应为FirstName='" + textBox1.Text.ToString() + "'";
,但您必须输入正确的名称
使用“喜欢”可以获得更多结果
FirstName Like '%" + textBox1.Text.ToString() + "%'";
由于Text Property已经是一个字符串
,因此不需要ToString()