- PR -

ASP.NET GridView/SqlDataSourceコントロールを使用してDELETEのパラメータがとれない

1
投稿者投稿内容
ミヨ
常連さん
会議室デビュー日: 2006/09/12
投稿数: 21
投稿日時: 2006-11-17 16:43
いつも参考にさせていただいております、ミヨと申します。

【開発環境】
APS.NET 2.0
VisualStudio2005(VB)
Oracle.DataAccess 9.2.0.2102

【やりたいこと】
1.GridView/SqlDataSourceコントロールを利用してOracleデータベースの抽出データを表に表示。
2.CommandFieldの編集、削除機能を使ってデータベースを更新したい。

【悩んでいるところ】
GridViewを作成してデータソースの構成でSELECTの定義をし、表示されるところまでは作成できました。
SELECTはカスタムSQLで1つのパラメータを定義しております。
次にDELETE文を定義したのですが、その時に定義した2つのパラメータのうち1つが定義できません。
(定義できているパラメータはSELECTと同じ)

カスタムSQLをあきらめて「テーブルまたはビューから列を指定します」で試してみようと思ったのですが、詳細設定の「SQL 生成の詳細オプション」が半透明状態で選択できませんでした。

Oracleの場合は何か設定が必要なのでしょうか?
参考書など色々調べてみたのですが、SQL Serverの説明しか見つかりませんでした。

つたない説明で申し訳ありませんが、ご教授宜しくお願い致します。
ミヨ
常連さん
会議室デビュー日: 2006/09/12
投稿数: 21
投稿日時: 2006-11-17 17:07
申し訳ありません。
上記の開発環境でASP.NETをAPS.NETと入力してしまいました。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-11-18 02:26
引用:
次にDELETE文を定義したのですが、その時に定義した2つのパラメータのうち1つが定義できません。

?・・「定義した」のに「定義できません」??
ウィザードの「パラメータの定義」に表示されないってことですか?ウィザード完了してから
コントロールのプロパティウインドウの[DeleteQuery]のとこから編集できますよ。

引用:
カスタムSQLをあきらめて「テーブルまたはビューから列を指定します」で試してみようと思ったのですが、詳細設定の「SQL 生成の詳細オプション」が半透明状態で選択できませんでした。

主キー列を選択していないとDeleteなどのクエリの自動生成はできません。

それはそうと、Oracle用のこういうの(ODP.NET?)ってないんでしたっけ?.NET2.0で
ミヨ
常連さん
会議室デビュー日: 2006/09/12
投稿数: 21
投稿日時: 2006-11-20 10:28
べる様
ご返答ありがとうございます。

引用:
引用:
次にDELETE文を定義したのですが、その時に定義した2つのパラメータのうち1つが定義できません。

?・・「定義した」のに「定義できません」??
ウィザードの「パラメータの定義」に表示されないってことですか?



申し訳ありません。日本語がおかしくなっていました。
「DELETE文を定義したのですが」→「DELETE文を定義したかったのですが」と書くべきでした。

コントロールのプロパティ「DeleteQuery」から編集できました。
DELETEはウィザードのパラメータ定義では表示されないのですね・・・。
購入した参考書にSELECT文の設定方法しか載っておらず、DELETE文も同様に設定できるはずだと思い、表示されない事がおかしいと思い込んでしまっていたために、データベースの構成ばかり調べてしまっていました。

引用:
引用:
カスタムSQLをあきらめて「テーブルまたはビューから列を指定します」で試してみようと思ったのですが、詳細設定の「SQL 生成の詳細オプション」が半透明状態で選択できませんでした。

主キー列を選択していないとDeleteなどのクエリの自動生成はできません。


こちらも主キーを設定して確認してみます。

引用:
それはそうと、Oracle用のこういうの(ODP.NET?)ってないんでしたっけ?.NET2.0で


ODP.NETは9.2.0.1.0を使用しているのですが、SQL文でエラーが起こったり起こらなかったりで(これは9.2.0.1.0のバグらしいのですが)バージョンアップをするかなど、検証しているところです。
まだまだ理解ができておらず、参考書等で勉強中です。

ご教授本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)