2017-05-04 5 views
0

こんにちは私はC#を初めて使用していますが、テキストボックスのテキスト変更イベントでデータグリッドをフィルタリングすることに問題があります。代わりにBarCodeと呼ばれる列の値を探します。それは列の名前を見ているようだ。これは私の目的に合ったチュートリアルのコードです。テキストボックスに基づいてDatagridviewをフィルタリングする

 private void Barcode_txtBx_TextChanged(object sender, EventArgs e) 
    { 
     string data = "Select * from BookInTable"; 
     DataSet ds = new DataSet(); 
     OleDbDataAdapter adapter = new OleDbDataAdapter(new OleDbCommand(data, connection)); 
     adapter.Fill(ds); 
     DataView DV = new DataView(); 
     DV.Table = ds.Tables[0]; 
     DV.RowFilter = "BarCode = " + Barcode_txtBx.Text.Trim(); 
     dGrid.DataSource = DV; 
    } 
+0

'DV.RowFilter =" BarCode = '"+ Barcode_txtBx.Text.Trim()+"' ";' SQL構文に従って、値を単一引用符で囲む必要があります。 –

+0

ありがとうございました。しかし、Barcode_txtBx.Textのようなバーコードのことについてはどうすればいいですか? –

+0

LIKEコマンドを使ってアクセスすると、テキストボックスに文字aを入力しても、aで始まるすべてのレコードにフィルターをかけて、入力したレコードのリストが短くなるようにフィルタリングできます。 –

答えて

1

おかげでChetan。 DV.RowFilter = "BarCode LIKE '" + Barcode_txtBx.Text.Trim()+ "'"しかし、これはちょうどLIKEの代わりに=と同じように思えました。これは%が不足していたためです。

+0

はい...「%」を使用していない場合はあまり役に立ちません。だから、あなたの照会でLIKEを使いたいのであれば、検索する値のまわりで '%'を使うのが良いでしょう。しかし、賢明に使うと、数値の行が多いほどパフォーマンスが低下します。 –

関連する問題