2014-05-08 65 views
0

我在windows form application搜索文本框,我想通過文字來搜索字符的裝置,當我在文本框寫h然後顯示結果的h的DataGridView,當我在搜索中添加haha文本框然後在ha的datagridview中顯示結果,並將其結果從hha的datagridview更改爲與手機聯繫人搜索相同。我喜歡的工作如下:特點使用搜索Windows窗體應用程序

public partial class Form2 : Form 
{ 
    SqlConnection connection = new SqlConnection("Data Source=(LocalDB)\\v11.0;AttachDbFilename=C:\\Users\\Administrator\\Documents\\Contact.mdf;Integrated Security=True;"); 
    SqlDataAdapter da = new SqlDataAdapter(); 
    DataSet ds = new DataSet(); 
    public Form2() 
    { 
     InitializeComponent();    
    } 

    private void Form2_Load(object sender, EventArgs e) 
    { 
     bindDatagridview(); 
     if (textBox1.Text != string.Empty)  
     {  
      search();    
     } 
    } 
    public void bindDatagridview() 
    { 
     SqlDataAdapter da = new SqlDataAdapter(); 
     DataSet ds = new DataSet(); 
     da.SelectCommand = new SqlCommand("Select * from contactsinfo", connection); 
     da.Fill(ds); 
     dataGridView1.DataSource = ds.Tables[0]; 
     //dataGridView1.DataBindings(); 
    } 
    public void search() 
    { 
     da.SelectCommand = new SqlCommand("Select * from contactsinfo where ContactName = '" + textBox1.Text + "'", connection); 
     da.Fill(ds); 
     dataGridView1.DataSource = ds.Tables[0]; 
     clear(); 
    } 
} 

但這只是工作時,形式是負載和形式僅在第一次加載: 請給我建議我做什麼,等待你的答覆。 謝謝。

回答

0

如果您可以一次加載所有聯繫人,那麼它很簡單。在表單加載中獲取所有聯繫人並將其保存在DataView中。然後結合網格這一觀點:

DataView contactsView; 

private void Form2_Load(object sender, EventArgs e) 
{ 
    DataTable dt = new DataTable(); 
    using (SqlConnection conn = new SqlConnection(connectionString)) 
    { 
     var da = new SqlDataAdapter("SELECT * FROM from contactsinfo", conn); 
     da.Fill(dt); 
    } 

    contactsView = dt.AsDataView(); 
    dataGridView1.DataSource = contactsView;  
} 

然後,只需改變DataView行篩選時,在過濾器文本框中的文本改變:

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    contactsView.RowFilter = 
     String.Format("ContactName LIKE '{0}%'", textBox1.Text); 
} 

如果你不能預先加載的所有數據,那麼你應該使用同樣的TextChanged事件來查詢過濾的數據。

注意:您應該在用戶輸入中處理'

+0

它不能正常工作,我收到異常'字段'search.Form2.contactsView'永遠不會被分配到,並且將始終具有其默認值null'在這條線'DataView contactsView;' – user88

+0

@ user88請仔細閱讀示例。在網格的綁定之前有'contactsView'初始化 –

+0

是的,我可以看到,但仍然無法工作。 – user88