Visual Studio 2010で新しいコンソールアプリケーションプロジェクトを作成しました(VS 2012で試しましたが、問題は同じです)。使用法は次のとおりです。
using System;
using System.Data.Common;
using Oracle.DataAccess.Client;
Mainメソッドで私はこのコードを書きました:
var oracleInstance = OracleClientFactory.Instance;
using (DbConnection conn = oracleInstance.CreateConnection())
{
conn.ConnectionString =
"Data Source=XXX;Persist Security Info=True;User ID=XXX;Password=XXX;";
conn.Open();
var command = conn.CreateCommand();
command.CommandText = "SELECT * FROM TABLE1 where rownum = 1";
DbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
Console.WriteLine("Column number {0}: {1}", i, reader[i]);
}
}
}
ターゲットフレームワークは.NET4.0です。Oracle.DataAccess.dll 4.112.3.0(.NET 4)を参照しました。
問題は次のとおりです。.NET4.0をターゲットにすると、コンパイルが機能せず、タイプまたは名前空間の名前「Oracle」が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?) 。.NETをターゲットにすると4.0クライアントプロファイル、正常に動作します。 実際には、.NET 4.0クライアントプロファイルではなく、.NET4.0フレームワークをターゲットにする必要があります。
この問題の解決策はありますか?