2012-07-04 93 views
0

我正在c#.net中創建一個表單。我只想在滿足搜索條件的條目點擊按鈕時填充gridview如何從access數據庫搜索後在button_click上填充gridview?

我已經嘗試過,但在搜索ID的作品,但在搜索名字它給出了錯誤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

您忘記數據綁定();

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()是不需要的,因爲文本屬性已經是一個字符串

+0

databind()在webform中使用,我猜這個問題是在Winforms中,不需要Databind()。 – yogi

+0

搜索作品....謝謝Johnn Blade :)但databind()不工作那裏它說「你錯過了使用指令或程序集引用 –

+0

更改行dataGridView1.DataBind();// dataGridView1.DataBind() ; – JohnnBlade