我正在尝试将应用程序的连接从Oracle更改为SQL Server。我在web.config中有这个。
<compilation debug="true">
<assemblies>
...
<add assembly="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
...
</assemblies>
</compilation>
和
<appSettings>
<add key="DatabaseProvider" value="Test.App.Oracle8i"/>
<add key="SmtpUser" value="mail@example.com"/>
<add key="SmtpPassword" value="testpassword"/>
<add key="SmtpDefaultSender" value="mail@example.com"/>
<add key="SmtpHost" value="mail.example.com"/>
<add key="SmtpPort" value="25"/>
<add key="EnableSsl" value="False"/>
</appSettings>
和这个
<connectionStrings>
<add name="CnString" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=loCALHOST)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)));User Id=TESTUSER;Password=TESTPASSWORD;"/>
</connectionStrings>
当我为这些应用程序更改这些值时,将无法运行并标记错误。
<compilation debug="true">
<assemblies>
...
<add assembly="System.Data.SqlClient, Version=10.50.1600, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
...
</assemblies>
</compilation>
和
<appSettings>
<add key="DatabaseProvider" value="Test.App.SqlServer"/>
<add key="SmtpUser" value="mail@example.com"/>
<add key="SmtpPassword" value="testpassword"/>
<add key="SmtpDefaultSender" value="mail@example.com"/>
<add key="SmtpHost" value="mail.example.com"/>
<add key="SmtpPort" value="25"/>
<add key="EnableSsl" value="False"/>
</appSettings>
和最后一次
<connectionStrings>
<add name="CnString" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=MSSQLSERVER)));Initial Catalog=TESTDATABASE;User Id=TESTUSER;Password=TESTPASSWORD;"/>
</connectionStrings>
或
<connectionStrings>
<add name="CnString" providerName="System.Data.SqlClient" connectionString="Data Source=(local)\\MSSQLSERVER;Initial Catalog=TESTDATABASE;User Id=TESTUSER;Password=TESTPASSWORD;"/>
</connectionStrings>
我不明白是应该排队。
<add assembly="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add key="DatabaseProvider" value="Test.App.Oracle8i"/>
<add name="CnString" connectionString="Data Source=**(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=loCALHOST)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)))**;User Id=TESTUSER;Password=TESTPASSWORD;"/>
答案 0 :(得分:1)
连接到SQL Server所需的唯一两行是:
<connectionStrings>
<add name="CnString" providerName="System.Data.SqlClient" connectionString="Data Source=(local)\\MSSQLSERVER;Initial Catalog=TESTDATABASE;User Id=TESTUSER;Password=TESTPASSWORD;"/>
</connectionStrings>
和
<assemblies>
<add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
(在.NET 2.0 / 3.x的情况下更改版本和publicKeyToken)
然后使用:
SqlConnection connection = new SqlConnection("CnString");
// ...
就是这样。
在.NET中,没有System.Data.SqlClient, Version=10.50.1600, ...
这样的程序集。 SqlClient是标准.NET Framework发行版的一部分。
例如,System.Data.SqlClient.SqlConnection:
Namespace: System.Data.SqlClient
Assembly: System.Data (in System.Data.dll)