1

我一直在 Java 上做应用程序,与 MySQL 连接,但现在我正在用 Oracle 做 C#。这是我到目前为止的代码:

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”。我想它是“localhost/”之类的,但是对于 Oracle,我在浏览器中并没有与 MySQL 相同的可视界面,因此我有点迷路了。

我遵循了本教程:Instant Oracle using C# ,我正在做的是将连接字符串直接包含在我的代码中,但不使用 tsanames.ora 外部文件。长话短说 -> 我不确定如何修改我自己的数据库的连接字符串,如果有任何其他错误或建议 - 请随时说明。

4

1 回答 1

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; ...

用户名和密码与您要连接的架构相关。

于 2013-03-25T16:17:11.020 回答