C#WPF - 在DataTable中实时搜索

时间:2013-02-10 14:36:57

标签: c# wpf datatable rowfilter

我有一个WPF Browserapplication,它可以将数据存储在SQL Server上,将其存储在DataTable中并将其显示在DataGrid中。现在我想要一个TextBox,您可以在其中搜索DataTable中的条目,但是当我加载应用程序时,我收到一条错误告诉我,无法找到[公司]行。

我认为问题是,当过滤器应用于DataTable时,DataTable尚未填充。有人可以给我一个提示如何使这个工作吗?

DataTable dt = new DataTable();

public Page1()
{
    InitializeComponent();
    showSQLData();
}

private void showSQLData() 
{
    string sqlConnectionString = @"blabla";
    string sqlCommandString = "SELECT * FROM Excel_import";

    using (SqlConnection sqlConnection = new SqlConnection(sqlConnectionString))
    {
        SqlCommand cmd = new SqlCommand(sqlCommandString, sqlConnection);
        SqlDataAdapter adapter = new SqlDataAdapter(cmd);

        adapter.Fill(dt);

        dataGridSQLData.ItemsSource = dt.DefaultView;
    }
}

private void textBoxSearch_TextChanged(object sender, TextChangedEventArgs e)
{
    dt.DefaultView.RowFilter = string.Format("Company LIKE '%{0}%'", textBoxSearch.Text);
}

1 个答案:

答案 0 :(得分:0)

根据您的最新评论,我猜测textBoxSearch_TextChanged来自InitializeComponent()来电。您可以在dt.Rows.Count > 0中检查textBoxSearch_TextChanged,如果不满足该条件,则返回。