
はじめまして。
現在aspx側でDBから読み込んだデータをGridViewに表示するプログラムを作っています。
環境
SQL Server 2005 Express Edition
Visual Studio 2005
ASP.NET(VB)
初期表示として前の画面で選ばれた種別によってSQLが変わるので .aspxで
<%
dim s as string = "SELECT * FROM 台帳 "
select case session("kind")
case "A"
s &= "WHERE 種別 LIKE '商品A%' "
case "B"
s &= "WHERE 種別 LIKE '商品B%'"
case else
' 全種別を取得
end select
hyo_1.SelectCommand = s & "ORDER BY 種別"
%>
<asp:SqlDataSource ID="hyo_01" runat="server" ConnectionString="<%$ ConnectionStrings:ConStr %>" />
と記述してみたのですが、結果は、何も表示されませんでした。
(順序を逆にしてみてもダメでした)
この場合、<asp:SqlDataSource ~ /> で SelectCommand はクリアされてしまうのでしょうか?
<asp:SqlDataSource ~ の中で SelectCommand="SELECT ~ " としたときに変数に入れたWHERE句を途中に埋め込むことがどうやってもできなかったので苦し紛れにやってみたのですが、、、
変数 whr="'商品A%'"として <asp:SqlDataSource ~ の中で
SelectCommand="SELECT * FROM 台帳 WHERE 種別 LIKE <% = whr %> ORDER BY 種別" />
とするとエラーになってしまうし、いろいろ検索してみたのですが解決できませんでした。
SelectCommand の内容を場合によって変更するにはどのようにしたらよいのでしょうか?
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
SqlDataSourceのSelectCommandプロパティに設定されるSQLにパラメータを追加して使用すればいいようですよ
SqlDataSourceのデータソース構成ウィザードでクエリビルダを使って
SELECT * FROM 台帳 WHERE 種別 LIKE @myShouhin
などとパラメータつきのSQLに変更します
こうして『次へ』をクリックするとパラメータの定義に移ると思います
名前:myShouhin
値: %
にしてウィザードを完了させます
選択を変更したいイベントで
SqlDataSource.SelectParameter(0).DefaultValue = "商品A%"
GetdView1.dataBind()
などを実行してみてください
redfox63さん
できました!
最初はデータソース構成ウィザードの使い方がわからずに意図したものと違う結果になっていたのですが、生成されたaspのコードをヒントに理解できて種別ごとに取得できるようになりました。
最終的にはasp側でVBを記述するのをやめて、生成された<asp:SessionParameter ~ >に合うようにVB側でセッション変数に"商品A%"を設定して実現しました。
このようなプログラム作成は経験が浅くてデータソース構成ウィザードのことも知らなかったのでとても勉強になりました。
どうもありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ASPでpingを飛ばす事は、可能で...
-
Panelを重ねる方法
-
ASPからASPを呼び出す方法
-
SqlDataSource SelectCommand ...
-
ページを一度更新しないとSessi...
-
ページの更新内容が反映されない。
-
ネットワーク上のPCのIPとホス...
-
C# try-catch でcatchに飛ばす方法
-
ASP.NET C# ローカルのパスが呼...
-
VBSからPDFファイルを開きたい...
-
IIS7.5の設定の仕方
-
ActiveDirectoryで高い層のOUを...
-
エクセルVBA 宣言Dimの場所
-
ASP 0x80004005 クライアント...
-
ASP内で他のASPファイルを読み...
-
ソケット通信で同時受信の制限?
-
FileCopy時のエラー
-
クレイトンって?
-
TCPサーバ bind関数のエラーに...
-
Buttonの処理について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GridView表示の高速化
-
Response.Redirectで引数2つの...
-
Panelを重ねる方法
-
ページの更新内容が反映されない。
-
申請のため一般用医薬品(OTC医...
-
不良セクタ8Kb
-
隠しフィールドをVBScriptでの...
-
SqlDataSource SelectCommand ...
-
ページを一度更新しないとSessi...
-
複数フレームの同時処理
-
北原化粧品をお使いの方へ
-
データ受け渡し時の維持
-
「a.v.v」「iiMK」の...
-
ASPからASPを呼び出す方法
-
GridViewからテンプレートフィ...
-
データ受け渡し時のSessionの使...
-
AutoPostBackにしているが、う...
-
asp.net でのドロップダウンリ...
-
Tableを動的に増やしたい。
-
テキストボックスのデータの取...
おすすめ情報