1

嗯,我試圖改變我的應用程序從Oracle連接到SQL Server。我在web.config中有這個。Web.config條目連接到SQL Server

<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="[email protected]"/> 
    <add key="SmtpPassword" value="testpassword"/> 
    <add key="SmtpDefaultSender" value="[email protected]"/> 
    <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="[email protected]"/> 
    <add key="SmtpPassword" value="testpassword"/> 
    <add key="SmtpDefaultSender" value="[email protected]"/> 
    <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

對於SQL Server - 你只需要節點和使用ConfigurationManager中類..其餘全部可以刪除您擁有用於Oracle的代碼中使用它..由於每個提供商都需要不同的設置,因此不存在1對1映射。 – sajoshi 2011-04-25 03:24:12

+0

那麼我是新來的,不太明白你說什麼。你能舉個例子嗎?或者你可以告訴我正確地做到這一點的步驟? – COAR 2011-04-25 03:44:35

回答

1

只有2個您需要連接到SQL Server行是:

<connectionStrings> 
    <add name="CnString" providerName="System.Data.SqlClient" connectionString="Data Source=(local)\\MSSQLSERVER;Initial Catalog=TESTDATABASE;User Id=TESTUSER;Password=TESTPASSWORD;"/> 
</connectionStrings> 

並在.NET 2.0/3.x的情況下

<assemblies> 
    <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
</assemblies> 

(變化版和公鑰)

然後使用:

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)