VB2005のWebアプリでOracle10gに接続しようとしています。
OleDbやSQLServerへの接続はImports System.Data.OleDbのように名前空間を宣言することでできたのですが、
参考書を探してOracleの接続を試みたところ、
Imports System.Data.OracleClientができませんでした。
何か別に必要な設定があるのでしょうか?
基本的なこととは思うのですが、ご教授お願い致します。
参照設定する必要がありますね。
ご返答遅くなりましたが、おかげさまで無事解決致しました。
参照設定を追加することで
Imports Oracle.DataAccess.Client
の一行を追加し、正常に動作させました。
ただ、参考書に掲載されていました
Imports System.Data.OracleClient
のような形式での記述はできなかったのですが、
これは他の参照を更に追加しなければならないのでしょうか?
参考にした書籍で取り扱っている環境も、
同じくVB2005とのことでしたので、
疑問が残っております。
よろしければ、ご説明頂ければ幸いです。
> Imports System.Data.OracleClient
これは、Microsoft 社製の ADO.NET マネージプロバイダです。
> Imports Oracle.DataAccess.Client
これは、Oracle 社製の ADO.NET マネージプロバイダです。(通称 ODP.NET)
> これは他の参照を更に追加しなければならないのでしょうか?
ヘルプに書いてありますよ。
たとえば、System.Data.OracleClient.OracleConnection クラスならば、
http://msdn2.microsoft.com/ja-jp/library/system.data.oracleclient.oracleconnection.aspx
> 名前空間: System.Data.OracleClient
> アセンブリ: System.Data.OracleClient (system.data.oracleclient.dll 内)
と書いてありますよね。
すなわち『"system.data.oracleclient.dll" を参照設定する必要がある』という事です。
ありがとうございます。
System.Data.OracleClient
もできるようになりました。
片方をコメントアウトして動作させても、
同じように動いてるように見えるのですが、
どのような違いがあるのでしょうか?
また、それによるメリット、デメリットは何なのでしょうか?
引き続きの質問申し訳ありませんが、ご教授よろしくお願いします。
クラスを使うために「参照設定」が必要なのは確かですが、
名前空間の「Imports」については必須ではありません。
たとえば、レジストリを扱う Registry クラスを例にとると、
Public Class Form1
Sub Test()
Dim r As Microsoft.Win32.Registry '★
End Sub
End Class
というコードを記述しやすくするために、
Imports Microsoft.Win32 '☆
Public Class Form1
Sub Test()
Dim r As Registry '☆
End Sub
End Class
のような記述が可能である、というだけの事です。
なおインポート指定は、ソースコード中に記述する以外にも、
MyProject ウィンドウの、[参照]タブ内の「インポートされた名前空間」
にて指示する事もできます。(VBC.EXE の /imports: オプションに相当)
度々のご回答、とてもわかりやすい説明をしていただきありがとうございます。
また、質問させていただくこともあるかと思いますが、よろしくお願いします。
ツイート | ![]() |