我的Web.config中有以下连接字符串:
<add name="OracleString" providerName="System.Data.OracleClient" ConnectionString ="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;"/>
当我尝试使用以下代码检索相同的内容时
ConnectionStringSettings connectionStringSettings = ConfigurationManager.ConnectionStrings["OracleString"];
DbProviderFactory factory = DbProviderFactories.GetFactory(connectionStringSettings.ProviderName);
DbConnection conn = factory.CreateConnection();
//set the connection string
conn.ConnectionString = connectionStringSettings.ConnectionString;
抛出异常:
关键字:不支持说明
答案 0 :(得分:0)
模式和标准是一个很棒的想法。
尝试更改Microsoft's Documentation中指示的连接字符串,我相信它会起作用
在你的情况下,我认为这将解决问题:
<add name="OracleString"
connectionString="Server=tcp:MyHost,MyPort;Database=MyOracleSID;UserID=myUsername;Password=myPassword"
providerName="System.Data.OracleClient" />
编辑: 经过一些研究后,我发现你正在使用的连接类型对于oracle是可能的,但是我相信你在描述之前忘记了数据源或服务器,这样的事情应该可以解决这个问题
<add name="OracleString" providerName="System.Data.OracleClient" ConnectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;"/>
答案 1 :(得分:0)
Coder2014,几天前我的web.Config出了问题。将connectionString粘贴到web.config时,该字符串使用了不同的enconding。 为了验证这一点,我使用http://www.xmlvalidation.com/来验证文件。
如果不是你的情况,也许你应该使用tnsnames.ora。看看https://www.connectionstrings.com/oracle-data-provider-for-net-odp-net/
答案 2 :(得分:0)
基于错误消息格式的类似帖子
不支持关键字______
问题似乎在于引擎无法识别“描述”是什么(在连接字符串的开头)。
我认为你的连接字符串不应该那样。 您复制并粘贴了TNSnames.ora中的内容。
oracle连接字符串的示例是:
<add name="oracleConnectionString"
connectionString="Server=yourDBServer; User ID=userIdToConnectWith; Password=userIdPassword; Unicode=True"
providerName="System.Data.OracleClient" />
从上面的示例中,我不确定 - 但我认为“MyOracleSID”将取代“yourDBServer”。