2013-03-25 152 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; ... 

的用戶名和密碼是那些與你要連接的架構。