C#WPF-数据表中的实时搜索

本文关键字:实时 搜索 数据表 C#WPF- | 更新日期: 2023-09-27 17:58:38

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

我认为问题是,当过滤器被应用到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);
}

C#WPF-数据表中的实时搜索

根据您的最新评论,我猜textBoxSearch_TextChanged是从InitializeComponent()调用中激发的。您可以在textBoxSearch_TextChanged中检查dt.Rows.Count > 0,如果不满足该条件,则返回。