2017-11-10 6 views
0

2つのテキストボックスをデータテーブル内のデータと比較し、この比較操作を使用してデータテーブルをフィルタリングします。たとえば :私はここでxの値を持つすべてのデータ(行と列)を表示する:フィルタリングデータテーブルで使用するテキストボックスの比較c#

textbox1.text>x>textbox1.text 

私はテキストの値と一致する値を取得するために、文字列フォーマット内の「Like」演算子を使用していました完全-boxしかし、私はここに必要な範囲フィルタリング動作

を行うことができませんでしたが、指定の質問に関連する私のコードです:

dv.RowFilter = string.Format("Type Like '%{0}%' and Gain Like" + 
      "'%{1}%'" + 
      "and Year Like'%{2}%' and MotorPower Like '%{3}%'" + 
      "and Profit Like '%{4}%'", textBoxType .Text,textBoxGain.Text 
      , textBoxYear.Text, textBoxBiggerthan.Text, textBoxKar.Text); 
dataGridView1.DataSource = dv; 

私はtextBoxSmallerthan.Textと呼ばれる別の入力テキストボックスを持っていますと私はtextBoxBiggerthan.TexttextBoxSmallerthan.Text

答えて

0

ドキュメントhere間のDataTable(DataGridViewの)にMOTORPOWER列のための私の範囲を作りたいの数字は、単一引用符メーカーでラップすることは必要ありません示しています。だから、形式は次のとおりです。

Columnname < Number

だから、最終フィルタはこのようなものでなければなりません:

dv.RowFilter = string.Format("Type Like '%{0}%' and Gain Like" + 
      "'%{1}%'" + 
      "and Year Like'%{2}%' and MotorPower > {3} and MotorPower < {4}" + 
      "and Profit Like '%{4}%'", textBoxType .Text,textBoxGain.Text 
      , textBoxYear.Text, textBoxSmallerthan.Text, textBoxBiggerthan.Text, textBoxKar.Text); 
dataGridView1.DataSource = dv; 
+0

申し訳ありませんが、そのコードは動作しませんでした。 "文字列が有効なDateTimeとして認識されませんでした" – utdlegend

+0

文字列を有効なDatetimeにフォーマットする必要があります。リンクの例がm/d/y形式です – Scrobi

+0

範囲コンポーネントをdatetimeに変換しようとしましたが、同じエラーメッセージが表示されています。 – utdlegend

関連する問題