VB.netでのfilterメソッドを使用して、検索ボックスのテキストに基づくDataGridViewで結果をフィルタリングしています。しかし、この検索の考え方は、のいずれかのにテキストが含まれていると行が表示されるということです。だから私のフィルタ文字列はこのように見える終わる:vb.net bindingsourceフィルタの日付を文字列にキャスト
filter = "ProductId LIKE '%" & searchterm & "%'" & " OR ScanDate like '%" & searchterm & "%'"
をしかし、私はフィルタ特性にフィルタを入れしようとすると、それは比較のためのテキストに日付列を変換することはできませんと言って、文句を言います。
datetimeセルを文字列にキャストするようフィルタに指示する方法はありますか?
データセットに日付のキャストされたバージョンを含む非表示の列があり、フィルタにのの列をフィルタするように指示します。
ここに私の割り当てのコードは次のとおりです。
bindingSource.Filter = filter
dgv.DataSource = bindingSource.DataSource
それはC#のもので問題はないと動作し、これは、実用的であるが、それはキーストロークごとにフィルタリングし、商品コードは、このPRD1234567のように見えるので、彼らは入力した場合"23" 23インチの商品ID、または23日などのスキャン日を示すことができます: "23/01/2010 12:00:00" – CrazyPenguin
23歳になると、 23日目、23分目、23日目も、昼間の検索だけではありません。これを有効にするには、有効な日付形式にするために、DateTimeをパディングする必要があります。 DD/MM/YYYY hh:MM:SSでなければならないフォーマットに対して23を検索することはできません。 –
それは私がしたいことです。それ自身の上に23を入力すると、productidが23の行が返されます。また、datetimeのいずれかのアスペクトに23が入っています(「23/01/2010 12:00:00」や「10/01/2023 12:00:00 "、または" 10/01/2010 12:23:00 "と表示されます。フィルタ自体の文字列に列をキャストできれば、期待どおりに動作します。どのようにするかわからない。 – CrazyPenguin