在DataTable中进行实时搜索
我有一个WPF Browserapplication,它将数据存储在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);
}
根据你最新的评论,我猜想textBoxSearch_TextChanged
是从InitializeComponent()
调用中被触发的。 你可以在textBoxSearch_TextChanged
检查dt.Rows.Count > 0
,如果没有满足条件,就返回。