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

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

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

Re[4]: DataGridViewの抽出について


(過去ログ 72 を表示中)

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

■42283 / inTopicNo.1)  DataGridViewの抽出について
  
□投稿者/ めた (3回)-(2009/10/11(Sun) 21:46:25)

分類:[.NET 全般] 

VC++2005(CLR)の質問です。

DataGridViewで絞り込み(抽出)をしようと、DataTable->DefaultView->RowFilterを使い
ました。
しかし、ここで

  DataTable->DefaultView->RowFilter= "aaa='abc'";

のようにするとちゃんと絞り込み(抽出)出来るのですが、これを文字列ではなく、

   String^ txt = this->TextBox->Text;
  DataTable->DefaultView->RowFilter= "DataGridView->Columns[i]->HeaderText-
>ToString()=txt";

のような感じで取得しようとすると失敗します。こういった方法は可能なのでしょう
か?
よろしくお願いします。

引用返信 編集キー/
■42284 / inTopicNo.2)  Re[1]: DataGridViewの抽出について
□投稿者/ やじゅ (1374回)-(2009/10/11(Sun) 22:17:59)
やじゅ さんの Web サイト
No42283 (めた さん) に返信
>   DataTable->DefaultView->RowFilter= "DataGridView->Columns[i]->HeaderText->ToString()=txt";
> のような感じで取得しようとすると失敗します。こういった方法は可能なのでしょうか?

ダブルクォーテーションの囲み方が悪い。
"DataGridView->Columns[i]->HeaderText->ToString()=txt"を囲んでるから、これが文字列となって
内容が変換されていない。


引用返信 編集キー/
■42285 / inTopicNo.3)  Re[2]: DataGridViewの抽出について
□投稿者/ めた (4回)-(2009/10/11(Sun) 22:35:43)
No42284 (やじゅ さん) に返信
> ダブルクォーテーションの囲み方が悪い。
> "DataGridView->Columns[i]->HeaderText->ToString()=txt"を囲んでるから、これが文字列となって
> 内容が変換されていない。

ダブルクォーテーションの囲みが変なのは分かっています。
しかし、囲まないと、

 String^ txt = this->TextBox->Text;
 String^ str = this->dataGridView1->Columns[n]->HeaderText->ToString();
 DataTable->DefaultView->RowFilter= str=txt;

として、strにtxtが代入されてしまいます。
こういった場合の書き方とかあるのでしょうか?

引用返信 編集キー/
■42286 / inTopicNo.4)  Re[3]: DataGridViewの抽出について
□投稿者/ Hongliang (479回)-(2009/10/11(Sun) 23:24:34)
2009/10/11(Sun) 23:25:30 編集(投稿者)
どういう意図があるのかいまいち読み切れにゃい……。
DataTable->DefaultView->RowFilter =
    String::Format("{0} = {1}",
                   this->dataGridView1->Columns[n]->HeaderText,
                   this->TextBox->Text);
こういうこと?
// でもなんでわざわざ DataGridView::Columns の HeaderText から取るんだろう?
// DataTable::Columns から ColumnName 使う方が自然だと思うけど……。


[修正]図表モードに変更。[/修正]

引用返信 編集キー/
■42287 / inTopicNo.5)  Re[3]: DataGridViewの抽出について
□投稿者/ やじゅ (1375回)-(2009/10/12(Mon) 00:40:20)
やじゅ さんの Web サイト
2009/10/12(Mon) 00:40:46 編集(投稿者)

No42285 (めた さん) に返信
> ダブルクォーテーションの囲みが変なのは分かっています。
>  DataTable->DefaultView->RowFilter= str=txt;
> として、strにtxtが代入されてしまいます。
> こういった場合の書き方とかあるのでしょうか?

Hongliangさんの提示案でいいですが、別解として

C++ だと文字列連結の記述方法が分かってないので間違っているかも知れないが
+演算子を文字列連結とするならば

変数 str = "aaa" txt = "abc"
となっていたら、 RowFilter = str + "='" + txt + "'"; とする。
引用返信 編集キー/
■42292 / inTopicNo.6)  Re[4]: DataGridViewの抽出について
□投稿者/ めた (5回)-(2009/10/12(Mon) 10:35:39)
>Hongliangさん、やじゅさん、

ありがとうございます。String::Formatを使って無事解決できました。

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


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

このトピックに書きこむ

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

管理者用

- Child Tree -