- - PR -
データ抽出時のパラメータ
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-09-03 15:37
SQL文は下記のようにしています。
引用符を名前付きパラメータへ変更しています。 MyCommand = New OleDbCommand("select * from T_PRESEN where PROD_FAM_NM= @PROD_FAM", MyConnection) MyCommand.Parameters.Add("@PROD_FAM", OleDbType.VarChar, 5).Value = MySelect1.SelectedItem.Value MyAdapter.SelectCommand = MyCommand MyDataset = New DataSet() MyAdapter.Fill(MyDataset, "T_PRESEN") パラメータにうまく値が入っていないのでしょうか。 他に設定をしなければならないところがありすか。 教えてください。 | ||||
|
投稿日時: 2003-09-03 16:15
使用したいプロジェクトに
System.Data.OracleClient: %SYSTEMROOT%\Microsoft.NET\Framework\v1.1.4322\System.Data.OracleClient.dll への参照を追加してください。 Imports System.Data.OracleClient MyCommand = New OracleCommand( _ "select * from T_PRESEN where PROD_FAM_NM= :PROD_FAM", MyConnection) MyCommand.Parameters.Add("PROD_FAM", _ OracleType.VarChar, 5).Value = MySelect1.SelectedItem.Value MyAdapter.SelectCommand = MyCommand MyDataset = New DataSet() MyAdapter.Fill(MyDataset, "T_PRESEN") 名前付きパラメータが使えるのは、.NET Data Provider for Oracleや、Oracle DataProvider for .NET、標準のSQL Server用データプロバイダです。このデータプロバイダというのは、.NET Frameworkから呼び出される、データベースとのやり取りを行うドライバと考えてください。名前付きパラメータを理解するのは、このドライバです。MELODYさんが使おうとされているOLEデータプロバイダは、.NET Framework 1.1とは関係なしに、名前付きパラメータを理解できません。『.Net Framework 1.1 なら、System.Data.OracleClient のデータプロバイダで名前付きパラメータが使用できます。 』は、1.1ならOleデータプロバイダでも名前付きパラメータが使用できるという意味ではなく、1.1で提供されるようになった(グローバルアセンブリとして提供されるようになった?).NET Data Provider for Oracleでは名前付きパラメータが使える、という意味です。 [ メッセージ編集済み 編集者: Jitta 編集日時 2003-09-03 16:22 ] | ||||
|
投稿日時: 2003-09-03 17:40
Jittaさんありがとうございます。
いただいたOracleClientを使用することができました。 しかし、エラーがでました。(太字で書いていただいたところは変更済みです) 「パラメータ名 : 無効な OleDbType の列挙値です 」 きっとSystem.Data.OleDbでずっとコーディングしていますので、 その影響かと思いますがいかかでしょうか。 | ||||
|
投稿日時: 2003-09-04 09:47
MyCommand.Parameters.Add()のところですか?とりあえずいったん消して、インテリセンスを利用して選択してみてください。 | ||||
|
投稿日時: 2003-09-04 11:34
いったん消して再度記述しましたが同じエラーがでます。
データ接続がSystem.Data.OleDbとなっていますので、 OleDbTypeのエラーがでているようです。 こちらもすべて変更しなければなりませんよね。 | ||||
|
投稿日時: 2003-09-04 12:13
そりゃそうです。「System.Data.OleDb.OleDb」を「System.Data.OracleClient.Oracle」に置換してみてください。 |