我处于C#的非常开始阶段。我正在创建一个为客户提供优惠的计划。我获得了第一份报价和一个excel文件加载到datagridview的子窗体。当我双击该行时,它将被复制到第一行的datagridview中。它工作正常。但是我想添加一个带有TextChanged事件的TextBox,所以当用户放置一些文本时,一个datagridview(第二种形式,那个带有excel数据的)应该只显示包含这个文本的行。如果无法一次搜索所有的列,那很好。但我无法让它工作。我发现了一些溶剂,我复制了它,但我不工作。因此,这里的代码:如何在将Excel文件加载到文本框之后通过文本框过滤datagridview
private void button1_Click(object sender, EventArgs e)
{
try
{
System.Data.OleDb.OleDbConnection PolaczenieBazyDanych = new System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\\Users\\user\\Desktop\\My Dropbox\\Cenniki\\Cennik.xlsx';Extended Properties=Excel 8.0;");
System.Data.DataSet DtSet = new System.Data.DataSet();
System.Data.OleDb.OleDbDataAdapter Adapter = new System.Data.OleDb.OleDbDataAdapter("select * from [Tabelle1$]", PolaczenieBazyDanych);
//Adapter.TableMappings.Add("Tabela", "TabelaTestowa");
Adapter.Fill(DtSet);
dataGridView1.DataSource = DtSet.Tables[0];
PolaczenieBazyDanych.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
DataView dv = ((DataTable)dataGridView1.DataSource).DefaultView;
dv.RowFilter = "FromColumn like '%" + textBox1.Text + "%'";
dataGridView1.DataSource = dv;
}
你有没有试着用dataGridView1.DataBind(); 作为文本更改事件的最后一行 – 2013-03-19 11:44:34