为什么我不能将oracle数据库与c#windows应用程序连接起来?

时间:2015-10-28 07:43:23

标签: c# oracle

我是oracle数据库的初学者,想编写简单的应用程序来连接oracle数据库,写下这段代码:

OracleConnection conn = new OracleConnection();
            conn.ConnectionString = @"Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = behbehzad)))";
            try
            {
                conn.Open();
                conn.Close();
                MessageBox.Show("Connect Successfull!!");
            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.ToString());

            }


但运行时应用程序会收到此错误:
enter image description here


我该如何解决?谢谢。

2 个答案:

答案 0 :(得分:1)

错误ORA-12514表示侦听器收到建立与数据库或其他服务的连接的请求。侦听器接收的连接描述符指定了服务(通常是数据库服务)的服务名称,该服务尚未向侦听器动态注册或尚未为侦听器静态配置。这可能是一个临时条件,例如在侦听器启动之后,但在数据库实例向侦听器注册之前。

此错误的可能解决方案是

  • 执行以下操作检查侦听器当前已知的服务:

lsnrctl services <listener name>

  • 检查所使用的网络服务名称的连接描述符中的SERVICE_NAME参数是否指定了侦听器已知的服务。
  • 如果使用了简单连接命名连接标识符,请检查指定的服务名称是否为侦听器已知的服务
  • 检查listener.log文件中的事件
  • 检查Windows上的Oracle PATH配置
  • 更改连接字符串

你可以阅读solution

答案 1 :(得分:0)

试试这个:

conn.ConnectionString = @"localhost:1521/behbehzad";

不需要让它变得更复杂。