c#使用ODBC连接到oracle

时间:2015-03-26 18:55:37

标签: c# .net oracle odbc

我正在尝试使用c#中的ODBC连接到远程Oracle数据库。

我制作了一个重现错误的测试代码

String sql = "SELECT * FROM ALL_TABLES";
        OdbcConnection conn = new OdbcConnection();
        conn.ConnectionString = "Driver={Oracle in instant_client_12};Server=192.168.56.101;Uid=SYS;Pwd=somepassword;";
        conn.Open();

        OdbcCommand command = conn.CreateCommand();
        command.CommandText = sql;
        System.Data.DataTable dt = new System.Data.DataTable();
        OdbcDataAdapter da = new OdbcDataAdapter(command);
        da.Fill(dt);
        conn.Close();

        Console.WriteLine("Filas: "+dt.Rows.Count);
        Console.ReadKey();

我在第4行得到了下一个错误,conn.Open()

ERROR [HY000] [Oracle][ODBC][Ora]ORA-12560: TNS:protocol adapter error

ERROR [IM006] [Microsoft][Administrador de controladores ODBC] Error de SQLSetConnectAttr del controlador
ERROR [HY000] [Oracle][ODBC][Ora]ORA-12560: TNS:protocol adapter error

sqlplus工作正常

  

sqlplus.exe SYSTEM / somepassword @ PRUEBA

     

SQL * Plus:于2015年3月26日星期四19:45:37发布12.1.0.2.0版本

     

版权所有(c)1982,2014,Oracle。保留所有权利。

并且PRUEBA = 192.168.56.101,在tnsname.ora中设置

任何人都知道会发生什么?我需要一些帮助。谢谢你的时间

1 个答案:

答案 0 :(得分:0)

查看你的连接字符串:

    conn.ConnectionString = "Driver={Oracle in instant_client_12};Server=192.168.56.101;Uid=SYS;Pwd=somepassword;";

您不指定任何数据库名称,只指定服务器。服务器可能托管多个Oracle DB。

尝试以下其中一项

    conn.ConnectionString = "Driver={Oracle in instant_client_12};DBQ=PRUEBA;Uid=SYS;Pwd=somepassword;";

    conn.ConnectionString = "Driver={Oracle in instant_client_12};CONNECTSTRING=PRUEBA;Uid=SYS;Pwd=somepassword;";

    conn.ConnectionString = "Driver={Oracle in instant_client_12};Server=PRUEBA;Uid=SYS;Pwd=somepassword;";
相关问题