DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataViewをア行、カ行…で絞り込みたいのですが

環境/言語:[Win2000 .NET Framework1.0]
分類:[.NET]

初めて投稿します。
VB6.0から移行で勉強しはじめたばかりです。

フォーム上にコンボボックスを2つ用意して(仮にCbo1、Cbo2とします)、
Cbo1では「ア行」「カ行」「サ行」…の選択をします。
Cbo2では、Cbo1で選択された行に応じた名前の社員名を選択できるようにしたいのです。
初期状態はCbo1で何も選択されていない状態で、
全員の名前が入っているDataViewを用意しています。
VB6.0の時は、ADODCを使い、

社員氏名(カナ) LIKE '[ア-オ]%'

のようなSQLでRefreshをかけていたのですが、
VB.NETのDataViewでも同じことができるのでしょうか。

試しに以下の用に書いてみましたが、失敗しました。

DV.RowFilter = "社員氏名(カナ) LIKE '[ア-オ]%'

どなたか詳しい方、ご教授よろしくお願いします。
こんにちは、KBさん。

■No6171に返信(KBさんの記事)
> 初めて投稿します。
> VB6.0から移行で勉強しはじめたばかりです。
>
> フォーム上にコンボボックスを2つ用意して(仮にCbo1、Cbo2とします)、
> Cbo1では「ア行」「カ行」「サ行」…の選択をします。
> Cbo2では、Cbo1で選択された行に応じた名前の社員名を選択できるようにしたいのです。
> 初期状態はCbo1で何も選択されていない状態で、
> 全員の名前が入っているDataViewを用意しています。
> VB6.0の時は、ADODCを使い、
>
> 社員氏名(カナ) LIKE '[ア-オ]%'
>
> のようなSQLでRefreshをかけていたのですが、
> VB.NETのDataViewでも同じことができるのでしょうか。
>
> 試しに以下の用に書いてみましたが、失敗しました。
>
> DV.RowFilter = "社員氏名(カナ) LIKE '[ア-オ]%'
>
> どなたか詳しい方、ご教授よろしくお願いします。

私は詳しい方ではありませんが(使ったことないので)
DataViewのRowFilterでは、Like演算子を用いて

  [Column名] Like '[A-Z]'

とした場合、つまり CharList には対応していなかったはずです。

RowFilterはSQLレヴェルの、Likeしか扱えなかったはずです
つまり、VBのLike演算子の固有(?)の使い方はできないはずです。

SQLレヴェルってことはですね、

Dataview1.RowFilter = "SUBSTRING(City, 1, 1) >= 'ア' And SUBSTRING(City, 1, 1) <= 'オ'"

という書き方もできるわけですよね。(これについては確認済みです)
java.lang.Nullpoさん、返信ありがとうございました。

> RowFilterはSQLレヴェルの、Likeしか扱えなかったはずです
> つまり、VBのLike演算子の固有(?)の使い方はできないはずです。
>
> SQLレヴェルってことはですね、
>
> Dataview1.RowFilter = "SUBSTRING(City, 1, 1) >= 'ア' And SUBSTRING(City, 1, 1) <= 'オ'"
>
> という書き方もできるわけですよね。(これについては確認済みです)

この方法があったんですね!
試してみたら上手くいきました。ありがとうございました!
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板