C# 通过C连接到Oracle数据库?

C# 通过C连接到Oracle数据库?,c#,oracle,c#-4.0,C#,Oracle,C# 4.0,我需要通过Visual Studio 2010连接到Oracle DB外部。但是我不想在我的机器上安装Oracle。 在我的项目中,我引用了:System.Data.OracleClient。但这并不能满足需求。 我有一个Oracle SQL Developer IDE,在其中我对Oracle db运行SQL查询 到目前为止,我有以下代码: private static string GetConnectionString() { String connString =

我需要通过Visual Studio 2010连接到Oracle DB外部。但是我不想在我的机器上安装Oracle。 在我的项目中,我引用了:System.Data.OracleClient。但这并不能满足需求。 我有一个Oracle SQL Developer IDE,在其中我对Oracle db运行SQL查询

到目前为止,我有以下代码:

 private static string GetConnectionString()
    {
        String connString = "host= serverName;database=myDatabase;uid=userName;pwd=passWord";
        return connString;
    }

 private static void ConnectingToOracle()
    {
        string connectionString = GetConnectionString();
        using (OracleConnection connection = new OracleConnection())
        {
            connection.ConnectionString = connectionString;
            connection.Open();
            Console.WriteLine("State: {0}", connection.State);
            Console.WriteLine("ConnectionString: {0}",
                              connection.ConnectionString);

            OracleCommand command = connection.CreateCommand();
            string sql = "SELECT * FROM myTableName";
            command.CommandText = sql;

            OracleDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                string myField = (string)reader["MYFIELD"];
                Console.WriteLine(myField);
            }
        }
    }
到目前为止,我阅读了以下博客:


到目前为止,我还没有从Oracle下载任何东西。我应该采取什么步骤来实现这一点

首先,您需要从该站点下载并安装ODP

安装后,添加对程序集Oracle.DataAccess.dll的引用

你很乐意去追求这个

using System; 
using Oracle.DataAccess.Client; 

class OraTest
{ 
    OracleConnection con; 
    void Connect() 
    { 
        con = new OracleConnection(); 
        con.ConnectionString = "User Id=<username>;Password=<password>;Data Source=<datasource>"; 
        con.Open(); 
        Console.WriteLine("Connected to Oracle" + con.ServerVersion); 
    }

    void Close() 
    {
        con.Close(); 
        con.Dispose(); 
    } 

    static void Main() 
    { 
        OraTest ot= new OraTest(); 
        ot.Connect(); 
        ot.Close(); 
    } 
}

下一种方法适用于Visual Studio 2013更新4 1-从解决方案资源管理器中右键单击引用,然后选择添加引用 2-程序集>框架>System.Data.OracleClient>确定 之后,您可以在应用程序中自由添加System.Data.OracleClient,并像处理Sql Server数据库一样处理数据库,只是将前缀从Sql更改为Oracle,如在SqlCommand中更改为OracleCommand以链接到Oracle XE

OracleConnection oraConnection = new OracleConnection(@"Data Source=XE; User ID=system; Password=*myPass*");
public void Open()
{
if (oraConnection.State != ConnectionState.Open)
{
oraConnection.Open();
}
}
public void Close()
{
if (oraConnection.State == ConnectionState.Open)
{
oraConnection.Close();
}}
要使用存储过程执行一些命令,如INSERT、UPDATE或DELETE,我们可以使用以下方法

public void ExecuteCMD(string storedProcedure, OracleParameter[] param)
{
OracleCommand oraCmd = new OracleCommand();
oraCmd,CommandType = CommandType.StoredProcedure;
oraCmd.CommandText = storedProcedure;
oraCmd.Connection = oraConnection;

if(param!=null)
{
oraCmd.Parameters.AddRange(param);
}
try
{
oraCmd.ExecuteNoneQuery();
}
catch (Exception)
{
MessageBox.Show("Sorry We've got Unknown Error","Connection Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
基本上,在这种情况下,System.Data.OracleClient需要访问一些不属于.Net的oracle dll。解决方案:

安装Oracle客户端,并将bin位置添加到windows的Path环境变量中 或 复制 ORAOCICUS10.dll基本精简版或aociei10.dll基本版, oci.dll、orannzsbb10.dll和oraocci10.dll从oracle客户端可安装文件夹发送到应用程序的bin文件夹,以便应用程序能够找到所需的dll 您也可以使用NuGet软件包。NET>=4.0,数据库>=10g版本2。

使用NuGet

右键单击项目,选择管理NuGet软件包。。。 选择浏览选项卡,搜索Oracle并安装 在代码中,使用以下命令Ctrl+。自动添加using指令

请注意,与Java相比,不同的数据源字符串是 不一样

// create connection
OracleConnection con = new OracleConnection();

// create connection string using builder
OracleConnectionStringBuilder ocsb = new OracleConnectionStringBuilder();
ocsb.Password = "autumn117";
ocsb.UserID = "john";
ocsb.DataSource = "database.url:port/databasename";

// connect
con.ConnectionString = ocsb.ConnectionString;
con.Open();
Console.WriteLine("Connection established (" + con.ServerVersion + ")");

您是否尝试过使用Oracle Data provider for.Net。您的意思是这个文件:它不能满足需要-这是什么意思?什么需求没有得到满足?看看这个。需要连接到Oracle DB。有两个文件:一个是55MB,另一个是225MB。我应该下载哪一个?它还说:64位ODAC 11.2 Release 5 11.2.0.3.20 Xcopy for Windows x64。什么是Xcopy?我没有尝试过Xcopy版本,但我怀疑这与您手动安装有关。这是我一直使用的225。我应该如何看待System.Data.OracleClient库?最好将NuGet PackageNode与NuGet软件包一起使用-您不必安装任何其他依赖项,如ODP。这是现在最简单的连接方式。@DavidMohundro-Nuget包通常是最简单的连接方式:。这就像一个符咒。如何连接到Oracle Forms 6?在.Net Framework 4.5+上运行,如果使用.Net 2.x Core应用程序而不是.Net 4.x应用程序,请使用Oracle.ManagedDataAccess.Core。完美ansnwer!酋长大师站在秋天的柱子上。尊敬。自光环1以来的粉丝,让我的一天有人注意到: