0

SQL Server に格納されたデータを取得し、DataTable に格納して DataGrid に表示する WPF Browserapplication があります。DataTable のエントリを検索できる TextBox が必要ですが、アプリケーションをロードすると、行 [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);
}
4

1 に答える 1

0

あなたの最新のコメントに基づいて、それは通話textBoxSearch_TextChanged内から解雇されていると思います。InitializeComponent()それをチェックインしてdt.Rows.Count > 0textBoxSearch_TextChangedその条件が満たされない場合は返すことができます。

于 2013-02-10T17:09:48.277 に答える