はじめまして。
現在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で質問しましょう!
似たような質問が見つかりました
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- その他(プログラミング・Web制作) Rでのスクリプトのご相談 3 2022/12/08 16:22
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- PostgreSQL SQLで検索結果の記事を表示したい 1 2022/04/28 21:03
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GridView リンク
-
Tableを動的に増やしたい。
-
FileCopy時のエラー
-
ASP内で他のASPファイルを読み...
-
【C#】アップロード時に「アプ...
-
C# try-catch でcatchに飛ばす方法
-
エクセルVBA 宣言Dimの場所
-
Outlookで添付ファイルの有無を...
-
EXCEL VBA API宣言でコンパイル...
-
winsock通信時エラーの回避
-
SPI通信プロトコル
-
ソケット通信で同時受信の制限?
-
VBSにてサーバー中のエクセルフ...
-
実行時エラー '-2147024726
-
画面のリフレッシュを意図的に...
-
EXECLマクロでshapeがグルーフ...
-
vbscriptの変数宣言
-
Buttonの処理について
-
ODBC経由でオラクルに接続
-
ASP.netで使用するWEBサーバに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Response.Redirectで引数2つの...
-
SqlDataSource SelectCommand ...
-
ASPからASPを呼び出す方法
-
「a.v.v」「iiMK」の...
-
GridViewからテンプレートフィ...
-
隠しフィールドをVBScriptでの...
-
ページの更新内容が反映されない。
-
ASPでpingを飛ばす事は、可能で...
-
GridView表示の高速化
-
ASPへのデータの受け渡しについて
-
Panelを重ねる方法
-
AutoPostBackにしているが、う...
-
<ASP.NET>DataGridでOnSelected...
-
UpdatePanel と GridViewについ...
-
北原化粧品をお使いの方へ
-
ASP.NETの拡張子はなぜ「asp」...
-
Tableを動的に増やしたい。
-
ASPでテキストファイルにデータ...
-
asp.net でのドロップダウンリ...
-
申請のため一般用医薬品(OTC医...
おすすめ情報