C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: DataViewのRowFilterについて


(過去ログ 73 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■42526 / inTopicNo.1)  DataViewのRowFilterについて
  
□投稿者/ ロンドー (1回)-(2009/10/17(Sat) 01:54:42)

分類:[.NET 全般] 

はじめまして。
VBを勉強し始めた者です。

最近DBへ接続して操作することを覚えたのですが、
DataViewについて分からないことがありますので
質問させていただきます。

DataViewのRowFilterでは任意の1文字はどう表現すればよいのでしょうか?
SQLでは"_"(アンダーバー)がこれを表すので同じ書き方は可能でしょうか?

たとえば「Tel列で06から始まり任意の1文字の後、3が1つ、そのあとは任意の複数文字」と
いう文字列を持つ行を抽出する場合
SQLでは
SELECT * FROM テーブル名 WHERE Tel LIKE '06_3%'
でよいと思いますが、同様に
DataView.RowFilter = "Tel LIKE '03_3%'"
とはできないのものなのでしょうか?
(やってみましたがうまく抽出できませんでした。)

皆さんのお力をお貸しください。
よろしくお願いします。
引用返信 編集キー/
■42531 / inTopicNo.2)  Re[1]: DataViewのRowFilterについて
□投稿者/ ぽぴ王子 (458回)-(2009/10/17(Sat) 08:26:49)
ぽぴ王子 さんの Web サイト
No42526 (ロンドー さん) に返信

調べてみました。

MSDN によれば、DataView.RowFilter プロパティの説明で
> 詳細については、DataColumn クラスの Expression プロパティのトピックを参照してください。
とありますので、DataColumn クラスの Expression プロパティを見てみます。

> * と % はどちらも LIKE 比較の中でワイルドカード文字として使用できます。
とあるので、とりあえず

Tel LIKE '06%'

程度の書き方はできるようです。逆に見ると、一文字でのワイルドカードの説明は見つかりませんでした。

Tel like '06%' AND SUBSTRING(Tel, 4, 1)='3'

無理矢理ですが、このような感じに指定するしかないかもしれませんね。

引用返信 編集キー/
■42581 / inTopicNo.3)  Re[2]: DataViewのRowFilterについて
□投稿者/ ロンドー (2回)-(2009/10/18(Sun) 22:14:58)
遅くなってすみません。

やはり無理ですか・・・。残念です。
せっかくのViewなのでSQL並みに機能を持たせてほしかったですね。

教えていただいたSUBSTRINGを使って頑張ってみたいと思います。
どうもありがとうございました。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -