質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

1557閲覧

VisualStudio: SQLCommmand上のWHERE句のプレースホルダを ドロップダウンリストの選択値と紐づけるには(データベースはOracle)

saya24

総合スコア247

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2020/11/19 07:08

編集2020/11/19 12:08

VisualStudio 2017 Professinal
ASP.NET4.0

フォームにGRIDVIEW=表形式のコントロールを配置しています。そちらのデータソースには SQLDataSourceを採用予定です。
同フォームには DropDownListを配置して この選択をもって 先のGRIDVIEWに表示するレコードを 絞りこめる仕様を目指しています。

つまりは GRIDVIEWに採用したSQLDataSource=SQLCommand内のWHERE句に DropDownListの選択値を 紐づけたいと考えています。

以下の画面は 上記のSQLDataSourceのSelectCommandを定義しているところです。
データベースはOracleなのですが、黄色でマーキングしている記載で プレースホルダーの記載に 誤りがあるのでしょうか?
![イメージ説明]
というのは....「次へ」のボタンを押下しても、コントロールの選択値とWHERE句での指定値を紐づけるための画面があらわれません。
「次へ」のボタンを押下しても 次の画面では ただ単に「完了」ボタンを押すだけの画面になります。

なお、以下は別フォームのGRIDVIEWに採用している成功したパターンのSQLDataSourceですが、やはり SQLCommandの定義のあとに 以下画面が現れてきます。

当方のVisualStudio2017は ODTという Oracleとの接続・開発を容易にするための ライブラリを導入中ですが、こちらの不具合ということでなのでしょうか
![イメージ説明

最悪は 本来生成されるだろうaspのファイルに 直接修正して SelectParametersの部分を追記すれば どうにかなるのでしょうか....

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/11/19 09:57

2 枚目の画像は何? ちゃんと出ているのでは? 書いてあることが意味不明ですけど。
saya24

2020/11/19 12:04 編集

2枚目の画像は別のフォームに採用しているGRIDVIEWのデータソースから、採取した画面コピーです。 本来なら、という意味で、SQLServerをデータベースとしたSQLDataSourceからの取得したものてす。
退会済みユーザー

退会済みユーザー

2020/11/19 10:43

分かるように質問欄を編集して書き直してください。
guest

回答1

0

ベストアンサー

SQL Server を使った場合は質問欄の 2 枚目の画像の「パラメータの定義」ダイアログが出るが、Oracle では出ないというのは ODT がそれをサポートしてないということであろうと思います。

MySQL + Connector/NET + MySQL for Visual Studio も同じで、2 枚目の画像の「パラメータの定義」ダイアログは出ません。

なので、以下の画像の赤枠のように自分でコードを書いて実装するようにしています。

イメージ説明

ただし、Oracle は試したことはありませんので、それでうまくいくかどうかは分かりません。

Oracle の場合デフォルトで位置パラメータマーカーになり(名前付きパラメータを使うには OracleCommand の BindByName プロパティの設定が必要?)、かつパラメータの命名規則が :<parametername> になるそうで、そのあたりが気になります。

確認してみてください。

ダメなら SqlDataSource の Selecting イベントのハンドラでパラメータの設定を行うぐらいしかなさそうです。

投稿2020/11/20 06:09

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

saya24

2020/11/20 06:30

わざわざMySQL で試して頂いたのですかね、いつもご親切な対応をありがとうございます。 ODTにも限界があるような気はしていたので、ある程度のところでみきりをつけます。 例えば aspx上にデータソースを定義しておくのではなく、イベントでデータソースを作って、GridViewにバインドする感じとか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問