2011-06-03 55 views
0

我在交友網站初學者,我只在MSDN學到的東西,但現在當我嘗試做一個非常簡單的網站,我有這個錯誤錯誤在數據綁定數據庫,Web表單

「無法找到所需的.Net框架數據提供程序,它可能沒有安裝。「

http://i.stack.imgur.com/RV5qY.jpg

步驟,隨後創建的網站>新網站>空缺網站>添加新的web窗體>拖GridView控件的頁面>添加新的數據源(SDF格式)上。

測試查詢運行良好,但是當我嘗試運行網頁時,出現此錯誤,我花了整整一天的時間搜索解決方案(但它們似乎不再有效,或者適用於較舊版本)。 我使用的是Vs2010的終極版,安裝了sqlServer compact edition 2008 SP2。 下面是Web.config文件:

<configuration> 
    <connectionStrings> 
<add name="ConnectionString" connectionString="Data Source=C:\Users\TarunG\Documents\Visual Studio 2010\WebSites\WebSite1\App_Data\Database1.sdf" 
    providerName="System.Data.SqlServerCe.Client.3.5" /> 
</connectionStrings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"></compilation> 
    </system.web> 
    </configuration> 

該數據庫只包含一個表 - 結果1。 Default.aspx文件:

<body> 
    <form id="form1" runat="server"> 
    <div> 
    </div> 
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataKeyNames="Roll No." DataSourceID="SqlDataSource1"> 
    <Columns> 
<asp:BoundField DataField="Roll No." HeaderText="Roll No." ReadOnly="True" 
     SortExpression="Roll No." /> 
     <asp:BoundField DataField="Category" HeaderText="Category" 
     SortExpression="Category" /> 
     <asp:BoundField DataField="Rank" HeaderText="Rank" SortExpression="Rank" /> 
     <asp:BoundField DataField="Registration No." HeaderText="Registration No." 
     SortExpression="Registration No." /> 
     <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" /> 
    </Columns> 
    </asp:GridView> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
    SelectCommand="SELECT * FROM [Result1]"></asp:SqlDataSource> 
    </form> 
</body> 

的machine.config:

<add name="SQL Server Compact Edition Data Provider" invariant="System.Data.SqlServerCe" description=".NET Framework Data Provider for Microsoft SQL Server Compact Edition" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/> 
    <add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    <add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    <add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/> 
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
     <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/> 

回答

1

對於一個網站,你應該使用SQL Server Express,而不是SQL Server精簡版。 SQL Server Compact Edition專爲獨立的單用戶場景而設計。 ASP.NET正在尋找SQL Server Express驅動程序,但找不到它們。

我建議卸載SQL Server Compact Edition,然後從這裏安裝SQL Server Express:http://www.microsoft.com/express/Database/這也將安裝必要的驅動程序。

隨着SS快速安裝,讓你的web.config中的連接字符串如下所示:

<add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|Database1.sdf;Integrated Security=True;User Instance=True" providerName="Microsoft.Sql.Client.3.5" /> 

祝你好運!

這裏提到
+0

但問題是,數據庫是在sdf格式,將不會創建一個問題 – TarunG 2011-06-03 18:08:14

+0

我已經安裝了Microsoft SQL Server 2008(它沒有指定它是哪個版本)。我是否還要下載Express版本? – TarunG 2011-06-03 18:16:55

+0

如果你已經安裝了SS2008,那麼你很好。你可能只是有一個連接字符串問題。您需要知道服務器的名稱和SS2008實例的名稱(如果有的話)。然後,您可以正確構建您的連接字符串: – 2011-06-03 18:38:43

1

http://msdn.microsoft.com/en-us/library/ms247257.aspx,您的連接字符串應該是這樣的:

Data Source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|Database1.sdf;Integrated Security=True;User Instance=True 

順便說一句,你需要的SQL Server Express的上述行工作。

+0

- 仍然沒有工作 – TarunG 2011-06-03 18:14:08