繁体   English   中英

SQL连接C#

[英]SQL connection c#

我有一个标准的本地Oracle数据库,可以通过使用以下命令与sqldeveloper连接:

username = system
password = orcl
hostname = localhost
port = 1521 
SID = ORCL

但是当我试图在代码中做到这一点时

try
            {
                SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();

                builder.DataSource = "localhost";
                builder.InitialCatalog = "HR_ORCL";
                builder.UserID = "system";
                builder.Password = "orcl";
                string connectionString = "Server=(local);Database=HR_ORCL;User ID=system;Password=orcl";
                using (SqlConnection connection = new SqlConnection())
                {
                    connection.ConnectionString = builder.ConnectionString;

                    connection.Open();

                    Console.WriteLine("State: {0}", connection.State);
                    Console.WriteLine("ConnectionString: {0}",
                        connection.ConnectionString);
                }
            }
            catch(Exception error)
            {
                System.Console.WriteLine(error.Message);
            }

我遇到错误

“提供者:命名管道提供者,错误:40-无法打开与SQL Server的连接”

我究竟做错了什么 ?

SqlConnection是一种ADO.NET类型,专门用于SQL Server。 它不适用于其他RDBMS。

如果要连接到Oracle数据库,则需要使用类似System.Data.OracleClient.OracleConnection (以及Oracle样式的连接字符串)之类的东西。

注意:虽然.NET框架包含适用于Oracle的ADO.NET类型,但这些类型可能已过时(或至少不如它们所具有的那样高效且功能完整),建议您从Oracle下载并安装单独的驱动程序。

正如Stefan所说的那样,您需要从该站点下载并安装ODP

安装完成后,您需要添加程序集Oracle.DataAccess.dll的引用。

然后您可以像这样使用它:

using System; 
using Oracle.DataAccess.Client; 

class MyClass
{ 
    OracleConnection con; 
    void Connect() 
    { 
        con = new OracleConnection(); 
        con.ConnectionString = "yourconnectionstring"; 
        con.Open(); 
    }

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

    static void Main() 
    { 
        //some code
    } 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM