- PR -

asp.net + oracle 変数をバインドすることについての質問

1
投稿者投稿内容
vion
会議室デビュー日: 2007/10/03
投稿数: 13
投稿日時: 2007-10-11 13:25
いつもお世話になっております。
asp.net(vb) oracle9i で開発しております。

SQL文のWhere句に Where id=:userid(useridは変数)と書いてあります。
vb側で
com.parameter.AddwithValue("userid”,struserid)
datareader=com.ExecuteReader()
と書いたら
datareader=com.ExecuteReader()でバインドされていない変数がありますとのエラーが起きます。

SQLServerを使う時は 
SQL文:Where id=@userid(useridは変数)

com.parameter.AddwithValue("userid”,struserid)
datareader=com.ExecuteReader()
これで正常に動いたんですが。。。 

oracleは初めてです。なぜこんなエラーが起きるかよくわかりません。誰か
助けてください。
GENZO
大ベテラン
会議室デビュー日: 2003/11/26
投稿数: 111
お住まい・勤務地: 名古屋
投稿日時: 2007-10-11 13:32
com.BindByName = true
としても状況は同じでしょうか?
vion
会議室デビュー日: 2007/10/03
投稿数: 13
投稿日時: 2007-10-11 13:35
GENZOさん:
ありがとうございます。
もっと具体的に教えていただけますか。

com.BindByName = true と書いてありますが。
com. でどう探してもBindByNameは見つかりませんが。。。
まるく
大ベテラン
会議室デビュー日: 2004/01/09
投稿数: 181
投稿日時: 2007-10-11 14:02
引用:

com. でどう探してもBindByNameは見つかりませんが。。。



これは ODP.NET での話ですね。

何を使ってます? OLEDB?
環境ぐらい書きましょう。

#あ、OLEDB だったらパラメータは「?」でしたね。。。(編集にて一文追加)


[ メッセージ編集済み 編集者: まるく 編集日時 2007-10-11 14:03 ]
vion
会議室デビュー日: 2007/10/03
投稿数: 13
投稿日時: 2007-10-11 14:35
まるくさん:
OLEDBを使っています。
Where id=?userid に直してやって見たら今回はまた下記エラーが出ます。

'MSDAORA.1' は失敗しましたが、エラー メッセージはありません。結果コードは E_FAIL(0x80004005) です。

接続文字列は Provider=MSDAORA.1;Password=nric;User ID=nric_d;Data Source=PIA;Persist Security Info=True ですが。。。
まるく
大ベテラン
会議室デビュー日: 2004/01/09
投稿数: 181
投稿日時: 2007-10-11 16:50
http://msdn2.microsoft.com/ja-jp/library/z72eefad(VS.80).aspx
の真ん中ちょい下
「OleDb プロバイダと Odbc プロバイダにおけるパラメータの使用」
等を参照
GENZO
大ベテラン
会議室デビュー日: 2003/11/26
投稿数: 111
お住まい・勤務地: 名古屋
投稿日時: 2007-10-12 00:44
引用:

vionさんの書き込み (2007-10-11 13:35) より:
GENZOさん:
ありがとうございます。
もっと具体的に教えていただけますか。

com.BindByName = true と書いてありますが。
com. でどう探してもBindByNameは見つかりませんが。。。



ODP.NETの話だと勝手に解釈していました。上記は無視してください。
1

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