0

私は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();
            }
   }
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() + "'";が、そのように正確に正しい名前を入力する必要があります

「いいね」を使用すると、より多くの結果を得ることができます

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

またToString()、Textプロパティはすでに文字列であるため、必要ありません。

于 2012-07-04T09:13:06.393 に答える