Web.config条目连接到SQL Server

时间:2011-04-25 03:15:04

标签: asp.net sql-server web-config database-connection connection-string

我正在尝试将应用程序的连接从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;"/>

1 个答案:

答案 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)