Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在连接字符串中包含服务名称的语法是什么?_C#_Sql_.net_Oracle_Database Administration - Fatal编程技术网

C# 在连接字符串中包含服务名称的语法是什么?

C# 在连接字符串中包含服务名称的语法是什么?,c#,sql,.net,oracle,database-administration,C#,Sql,.net,Oracle,Database Administration,我有一个ASP.NETMVCWeb应用程序。我正在尝试成功连接到Oracle数据库。 我得到一个ORA-12514:TNS:listener当前不知道连接描述符错误中请求的服务。 我无权访问数据库所在的服务器。但是我可以访问Oracle SQL Developer,我已经在我的机器上安装了它 在我的C代码中,我将连接字符串设置为: ConnectionString=DataSource=XXX.XX.XXX.XXX/abcd,1521;用户ID=用户ID;密码=密码 abcd应该是服务名称。15

我有一个ASP.NETMVCWeb应用程序。我正在尝试成功连接到Oracle数据库。 我得到一个ORA-12514:TNS:listener当前不知道连接描述符错误中请求的服务。 我无权访问数据库所在的服务器。但是我可以访问Oracle SQL Developer,我已经在我的机器上安装了它

在我的C代码中,我将连接字符串设置为:

ConnectionString=DataSource=XXX.XX.XXX.XXX/abcd,1521;用户ID=用户ID;密码=密码

abcd应该是服务名称。1521是端口号

我知道我的连接字符串可能不是错误的原因,但我想排除它。另外,我知道更合适的方法可能是在web.config中设置连接字符串并根据需要检索它,但我这样做只是为了便于测试,直到我知道我能够成功连接到数据库为止

让我感到奇怪的是,我能够使用Oracle SQL Developer连接到数据库,使用的IP地址、端口号、服务名称、用户名和密码与我在连接字符串中使用的相同

首先,我想知道我的连接字符串是否有效。如果您对这个问题还有其他想法,我们也将不胜感激

在Oracle SQL Developer中使用此命令: 从dual中选择系统上下文“userenv”和“服务名称”

我能够确定我在连接字符串中使用的服务名称是否存在,尽管我猜这并不保证服务已启动。
我无论如何都不是DBA。事实上,我对.Net和web开发一般来说还是新手,但我被指派来解决这个问题。非常感谢您的帮助。

我不记得看到过以下格式

DataSource=XXX.XX.XXX.XXX/abcd,1521
作为有效的,这并不意味着它不是,我只是没有看到它

我见过的比较常见的是:

DataSource=XXX
其中XXX是对tnsnames.ora文件的引用

DataSource=//nnn.nnn.nnn.nnn/service_name
DataSource=//nnn.nnn.nnn.nnn:port/service_name

所以,也许可以试试这些变体,看看你的表现如何。在

上还有更明确的备选方案列表,我最终找到了答案。我认为我的连接字符串格式不正确。我把它改成:

ConnectionString = "DataSource=XXX.XX.XXX.XXX/abcd;User ID=userid;Password=password;";

基本上,我只是去掉了端口号。在我的例子中,默认端口是我所需要的。不确定如果我需要指定端口号,我会做什么。

给你一个提示:在桌面上创建一个新的文本文件并将其重命名为A.udl,双击它以查看熟悉的数据连接对话框,将提供程序更改为oracle,设置所有设置,测试它,保存它,然后将其命名为A.txt并在记事本中打开;这是你的连接string@CaiusJard非常感谢你的提示。但是,我的提供商列表中没有Oracle。默认情况下,它选择打开.udl文件的应用程序是OLE DB核心服务。我应该使用什么应用程序打开url?我试着从下载中选择sqldeveloper.exe,但这只会启动Oracle SQL developer.Urgh。。可能存在驱动程序问题-OLE DB核心服务是正确的应用程序。相反,请尝试以下类似技巧:将新数据集添加到项目中,打开它,右键单击曲面上的任意位置,然后添加表适配器。创建新连接字符串,填写Oracle对话框,测试,保存。。当您完成向导时,连接字符串将隐藏在您的应用程序设置中,只需启动类似select*from dual in的查询即可。我很想知道这是否显示了您的oracle驱动程序,而另一个提示没有显示