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

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

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

Re[2]: Linq To SQLにおける検索条件無しの設定


(過去ログ 117 を表示中)

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

■68852 / inTopicNo.1)  Linq To SQLにおける検索条件無しの設定
  
□投稿者/ 白鴉 (6回)-(2013/11/22(Fri) 17:05:07)

分類:[データベース全般] 

Linq TO SQLの質問です。

var q = from p in assetMannageDataSet.Equip1
where p.管理番号 == int.Parse(textBox1.Text)
select p;

このようなSQL文を書きました。
これをtextBox1=NULLの時、検索条件無しとして、全てのレコードを表示させるようにしたいと思います。

初歩的な質問ですがよろしくお願いします。
引用返信 編集キー/
■68909 / inTopicNo.2)  Re[1]: Linq To SQLにおける検索条件無しの設定
□投稿者/ 甕星 (22回)-(2013/11/24(Sun) 23:55:18)
たぶん、貴方がやりたいのは「動的SQL」をLinqで実現したいのだと思います。
「動的SQL LINQ」で検索すればいくつかの方法が見つかりますが、動的SQLはLinqが苦手とする部分なので、可能ならその部分はSQL.NET等を使って実装する事をお勧めします。

対象がテキストボックスひとつだけなら、以下のような書き方もあるようですが・・・

var q = from p in assetMannageDataSet.Equip1
where (textBox1.Text == "") || (p.管理番号 == int.Parse(textBox1.Text))
select p;

引用返信 編集キー/
■68911 / inTopicNo.3)  Re[2]: Linq To SQLにおける検索条件無しの設定
□投稿者/ 白鴉 (8回)-(2013/11/25(Mon) 09:04:09)
No68909 (甕星 さん) に返信
> var q = from p in assetMannageDataSet.Equip1
> where (textBox1.Text == "") || (p.管理番号 == int.Parse(textBox1.Text))
> select p;
>
お教え頂いた方法を使用してみたところ、問題なく動作いたしました。
テキスト複数を参照するケースだったので、

var q = from p in assetMannageDataSet.Equip1
where (textBox1.Text == "") || (p.管理番号 == int.Parse(textBox1.Text))
where (comboBox1.Text == "") || (p.分類 == comboBox1.Text)
select p;

としましたが現状問題が起きていません。

返信遅れまして済みませんでした。これにて解決といたします。
ありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -