- - PR -
GridViewのパラメータについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-10-11 17:56
こちらには初めて投稿させていただきます。
ASP.NETでの開発を最近はじめた者です、宜しくお願い致します。 GridViewを使用してデータベースの内容を表示させる処理をしているのですが Where句の文が動的に生成される場合Gridviewで実現させる場合の方法が分かりません。 例えば GridViewのデータソースの構成から以下のようなSQL文を指定し SELECT AAA, BBB, CCC From dTBL WHERE :strsql ORDER BY AAA WHERE句の「:strsql」にセッションで取得する条件文 (BBB = "001"など)を設定したいのですが クエリのテスト時に型をStringに設定し実際の条件文をいれてテストすると 「関係演算子が無効です」と出てしまいます。 GridViewのデータソース機能?を使用して上記のような使い方は出来ないのでしょうか? VB.NET VWDにて開発を行っております。 |
|
投稿日時: 2006-10-11 21:24
パラメータクエリのことですか?
参考URL http://msdn2.microsoft.com/ja-jp/library/system.data.oledb.oledbparameter.aspx 間違っていたらごめんなさい _________________ -------------------------------------------- HIRO's.NET VB.NETとC#のTipsを掲載しています [ メッセージ編集済み 編集者: HIRO 編集日時 2006-10-11 21:25 ] |
|
投稿日時: 2006-10-12 09:17
HIROさん、返答ありがとうございます。
なにぶん初心者なもので上記のパラメータクエリというものが よく分からないのですが(参考先を熟読してみます)簡単に言うと GridViewコントロールのデータソースの構成を指定するところで パラメタを指定できると思うのですが(:aaa こんな感じで) そのパラメタに値(BBB = "001"の"001")を設定することは出来ても WHERE句以降の構文などを指定することは出来ないのかな? ということなんです。 |
|
投稿日時: 2006-10-12 10:31
> WHERE句以降の構文などを指定することは出来ないのかな?
構文の指定はできないですね。 SQL文の作り方等でいろいろ工夫されている方はいるようです。 もう少し具体的にこんなパターンを用意したい、という記述があると詳しい方から フォローがあるかもしれません。 |
|
投稿日時: 2006-10-12 10:52
どっとねっとふぁんさん、回答ありがとうございます。
やはり構文の指定は出来ないのですか・・・。 >もう少し具体的にこんなパターンを用意したい 動的に生成されるWHERE句が多岐にわたり、一定していないのです。 やはりGridViewのデータソース機能では無理があるのでしょうか。 追加の質問になってしまうのですが 幾つかの構文を用意しておき、パラメタで使用する構文を変える ということも出来ないのですよね? それが無理だとすると、一度コード内でSQL文を生成し、データを取得したのち 取得したデータをGridViewに反映させるやり方しかないと思うのですが GridViewでそのような使い方をしているのあまり見たことがないので・・・。 ページングも使えないし。うーん・・・。 GridViewを使わないで何かスマートなやり方ってないのでしょうか。 |
|
投稿日時: 2006-10-12 11:26
データ取得する前に
SqlDataSource.SelectCommand = みたいにすればいいんじゃないでしょうか? 「ページングも使えないし」とはどういう意味ですか? |
|
投稿日時: 2006-10-12 13:21
べるさん、回答ありがとうございます。
勉強不足でした。 SelectCommandを使ってなんとか実現できそうです。 ありがとうございました。 >「ページングも使えないし」とはどういう意味ですか? GridViewでデータソースを使用せず、生成されたデータを流し込む ようなやり方をするとページ切り替えの数字?(1/2/3のようなやつ)が 自動で作成されないと聞いたのですが、、、 実際にやったことがないので間違っていたら、こちらの勘違いと言うことで 無視してください。申し訳ありませんでした。 |
|
投稿日時: 2006-10-12 15:33
> GridViewでデータソースを使用せず、生成されたデータを流し込む
> ようなやり方をするとページ切り替えの数字?(1/2/3のようなやつ)が > 自動で作成されないと聞いたのですが、、、 自動でページングが行われる場合、すべてのデータをDataTableに取り出すという 作業が行われています。 これは非効率ですから、あえて必要な部分のデータを取り出してページングを 行うようにプログラムを組む、ということもあります。 自動で作成されるというのはある意味メリットですが、アプリケーションの 内部的にはデメリットになっている場合もあるので、それにこだわる必要は ないと思います。 |
1