0

我正在 c#.net 创建一个表单。我想gridview用符合搜索条件的条目填充唯一的按钮单击。

我已经尝试过,但是在搜索 ID 时它可以工作,但是在搜索 FirstName 时它也会给出错误,请检查 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();
            }
   }
4

1 回答 1

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() + "'";输入正确的名称

使用“like”可以获得更多结果

FirstName Like '%" + textBox1.Text.ToString() + "%'";

并且ToString()不需要,因为 Text 属性已经是一个字符串

于 2012-07-04T09:13:06.393 回答