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

RG-*_*G-3 35 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 = "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);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

到目前为止,我读了这些博客:

http://st-curriculum.oracle.com/tutorial/DBXETutorial/index.htm

http://blogs.msdn.com/b/kaevans/archive/2009/07/18/connecting-to-oracle-from-visual-studio.aspx

到目前为止,我还没有从Oracle下载任何东西.我应该采取什么措施来实现这一目标?

Pra*_*thy 51

首先,您需要从此站点下载并安装ODP http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

安装后添加程序集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(); 
    } 
}
Run Code Online (Sandbox Code Playgroud)

  • 我应该如何看待System.Data.OracleClient库? (2认同)
  • 最好使用NuGet包 (2认同)

hon*_*989 20

您也可以使用Oracle.ManagedDataAccess NuGet包(.NET> = 4.0,数据库> = 10g第2版).

  • 请注意Nuget包 - 您不必安装任何其他依赖项(如ODP).这是现在最简单的连接方式. (3认同)
  • @DavidMohundro Nuget包通常是最简单的方法:). (3认同)

Boe*_*ern 8

使用Nuget

  1. 右键单击项目,选择 Manage NuGet packages...
  2. 选择Browse选项卡,搜索Oracle并安装Oracle.ManagedDataAccess

Oracle NuGet软件包

  1. 在代码中,使用以下命令(Ctrl+ .自动添加using指令)。

  2. 注意,与Java相比,不同的DataSource字符串是不同的。

    // 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 + ")");
    
    Run Code Online (Sandbox Code Playgroud)

  • 如果使用 .NET 2.x 核心应用程序而不是 .NET 4.x 应用程序,请使用 Oracle.ManagedDataAccess.Core。 (2认同)