2011-06-03 25 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