2013-03-25 153 views
1

我一直在Java上进行应用程序,与MySQL连接,但现在我正在用C#与Oracle进行通信。 这是到目前为止,我已经得到了代码:C#连接到Oracle数据库

using System.Data.OracleClient; 

namespace Chat 
{ 
    class DBconnector 
    { 
     static private string GetConnectionString() 
     { 
      return "Data Source=myserver.server.com;Persist Security Info=True;" + 
       "User ID=myUserID;Password=myPassword;Unicode=True"; 
     } 
     static public void ConnectAndQuery() 
     { 

      string connectionString = GetConnectionString(); 
      using(OracleConnection conn = new OracleConnection()) 
      { 
       conn.ConnectionString = connectionString; 
       conn.Open(); 
       Console.WriteLine("State: " + conn.State); 
       Console.WriteLine("Connction String: " + conn.ConnectionString); 

       OracleCommand command = conn.CreateCommand(); 
       string sql = "SELECT * FROM users"; 
       command.CommandText = sql; 

       OracleDataReader reader = command.ExecuteReader(); 
       while(reader.Read()) 
       { 
        string myField = (string)reader["MYFIELD"]; 
        Console.WriteLine(myField); 
       } 
      } 

     } 

    } 
} 

什么是黑客的是,我不知道该怎么输入“myserver.server.com”的“myuserid”和交换“ myPassword“在connectionString中。 我认为它是“localhost /”,并且像这样,但是对于Oracle,我并没有像浏览器中的MySQL那样拥有相同的可视界面,因此我有点不知所措。

我跟着本教程:Instant Oracle using C# 和我正在做的情况下,直接在我的代码中包含连接字符串,但不使用tsanames.ora外部文件。 长话短说 - >我不知道如何修改我自己的数据库的连接字符串,如果有任何其他错误或建议 - 随时陈述他们。

+2

您应该使用TNSNAMES.ORA文件。 – Rik 2013-03-25 16:14:36

+2

使用我最喜欢的网站http://connectionstrings.com/oracle。这一直对我有帮助。 – rocky 2013-03-25 16:16:01

回答

1

我不知道,如果你能做到这一点无需修改TNSNAMES,但它并不难:

YOURSERVER = (DESCRIPTION = (ADDRESS = (PROTOCOL= TCP) 
(Host= <your_server_hostname_or_IP>)(Port= <port>))(CONNECT_DATA = (SID = <DB_instance name>))) 

如果您有关于如何填补这些释疑,你应该与最近的DBA检查。

然后,只需添加YOURSERVER在:

return "Data Source=YOURSERVER; ... 

的用户名和密码是那些与你要连接的架构。