- - PR -
DataViewのFilterでカラム名にスペースが含まれる場合
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-10-03 16:25
はじめまして、こんにちは。
DataViewのFilterでカラム名にスペースが含まれる場合の、 フィルターのかけ方についての質問です。 filter1 = colmun + "= 'true'" view1.RowFilter = filter1.ToString() このようにフィルターを行ったのですが、 colmunにスペースが含まれている場合、 エラーになってしまいます。 仮にcolmunを「ab cd」とすると、 'cd' 演算子の後にオペランドがありません。 のエラーになる。 この場合の対処方法をご存知でしたら教えてください。 よろしくお願いします。 | ||||||||
|
投稿日時: 2006-10-03 16:44
何かで囲う。何かは調べる。
| ||||||||
|
投稿日時: 2006-10-03 17:06
返信ありがとうございます。
私が調べたところ、ダブルクォーテーションで囲う必要があり、 filter1 = """" + colmun + "= 'true'""""; としたところ、「;がありません。」といわれビルドエラーになり、 filter1 = "\"" + colmun + "= 'true'\""; としたら、「位置 1 のトークン '"' を変換できません。」のエラーになってしまいました。 colmunにスペースが含まれない場合は、 filter1 = colmun + "= 'true'" ; で、できましたのでどう記述すれば正しく実行できるのか質問させていただきました。 言語はC#を使用しています。 よろしくお願いします。 | ||||||||
|
投稿日時: 2006-10-03 17:15
どこを囲んでるのさ。ここまでが列名だよって教えるために囲むんだよ?
| ||||||||
|
投稿日時: 2006-10-03 17:37
すみません間違えてました。
filter1 = "\"" + colmun + "\"='true'"; このようにしたのですが、、「位置 1 のトークン '"' を変換できません。」のエラーになってしまいました。 おかしいことは間違いないのですが、どこがおかしいのでしょうか。 よろしくお願いします。 | ||||||||
|
投稿日時: 2006-10-03 17:40
こんにちは。
この「ダブルクォーテーションで囲む必要がある」というのはどのあたりから得た 情報でしょうか。 もしかするとこの情報からすでに間違えてしまっている可能性があります。という か間違っているようです。 DataView.RowFilter プロパティを MSDN で調べてみたところ
とあったので、Expression プロパティを覗いてみたところ、直接的な表現では ありませんが、そのものズバリの回答がありました。 (ぶさいくろうさんが「何かは調べる」とおっしゃっているのであえて答えは書きませんが) その前に、カラム名にスペースを使うのには何か理由があるのでしょうか。理由 がなければスペースを使わないという回避方法もあるかと思います。 # Expression プロパティの URL を間違えていたので修正 orz [ メッセージ編集済み 編集者: ぽぴ王子 編集日時 2006-10-03 17:44 ] | ||||||||
|
投稿日時: 2006-10-03 18:09
ありがとうございます。
ようやくわかりました。 MSDNをよく読んだところ、「中カッコ」とおもいっきり書いてありました。 紹介例として「"LastName = 'Jones'" 」のように書いてあったため、 てっきり「"」で囲むものだと思い込んで間違えていました。 カラムにスペースを使用するのは、変数をカラム名に指定してViewを作成するためです。 ぶさいくろう様、ぽぴ王子様、お答えいただき本当にありがとうございました。 |
1