开发者

Grid View Error Visual Studio 2010 asp.NET Framework 4. Unable to find .NET Framework Provider

开发者 https://www.devze.com 2023-03-20 17:56 出处:网络
I have an SQL Compact edition database as a local file. I\'m using Visual Studio 2010 to access the database and make my asp.NET website.

I have an SQL Compact edition database as a local file. I'm using Visual Studio 2010 to access the database and make my asp.NET website.

In my aspx page design view, the data displays fine, and when I configure it and run a test query, it works fine...

However When I run my page I get this strange Error.

Unable to find the requested .Net Framework Data Provider.  It may not be installed.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ArgumentException: Unable to find the requested .Net Framework Data Provider.  It may not be installed.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[ArgumentException: Unable to find the requested .Net Framework Data Provider.  It may not be installed.]
    System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +1402071
    System.Web.UI.WebControls.SqlDataSource.GetDbProviderFactory() +67
    System.Web.UI.WebControls.SqlDataSource.GetDbProviderFactorySecure() +22
    System.Web.UI.WebControls.SqlDataSource.CreateConnection(String connectionString) +11
    System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +117
    System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +21
    System.Web.UI.WebControls.DataBoundControl.PerformSelect() +143
    System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +74
    System.Web.UI.WebControls.GridView.DataBind() +4
    System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +66
    System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +75
    System.Web.UI.Control.EnsureChildControls() +102
    System.Web.UI.Control.PreRenderRecursiveInternal() +42
    System.Web.UI.Control.PreRenderRecursiveInternal() +175
    System.Web.UI.Control.PreRenderRecursiveInternal() +175
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2496

I for one, have no idea what this is... I have scoured the net and found that it MAY have something to do with my web.config file. My aspx code is:

<asp:SqlDataSource ID="pending" runat="server"
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>"                

    SelectCommand="SELECT u.firstName, u.surname, w.url, c.companyName, o.cost FROM Website AS w INNER JOIN Orders AS o ON w.webID = o.websiteID INNER JOIN Company AS c ON w.companyID = c.companyID INNER JOIN Users AS u ON c.userID = u.userID WHERE (o.completed = 'N')" 
    ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>">
</asp:SqlDataSource>

<asp:GridView ID="grid" runat="server" AutoGenerateColumns="False" 
    <Columns>
        <asp:CommandField ShowSelectButton="True" />
        <asp:BoundField DataField="firstName" HeaderText="firstName" ReadOnly="True" 
            SortExpression="firstName" />
        <asp:BoundField DataField="surname" HeaderText="surname" ReadOnly="True" 
            SortExpression="surname" />
        <asp:BoundField DataField="url" HeaderText="url" ReadOnly="True" 
            SortExpression="url" />
        <asp:BoundField DataField="companyName" HeaderText="companyName" 
            ReadOnly="True" SortExpression="companyName" />
        <asp:BoundField DataField="cost" HeaderText="cost" ReadOnly="True" 
            SortExpression="cost" />
    </Columns>
</asp:GridView>

And my web config is:

<?xml version="1.0"?>
<configuration>
<connectionStrings>
        <add name="ConnectionString" connectionString="Data Source=Database.sdf;Password=XXXX;Persist Security Info=True"
            providerName="Microsoft.SqlServerCe.Client.3.5" />
    </connectionStrings>
    <system.web>
        <compilation debug="true" targetFramework="4.0">
        <assemblies>
            <add assembly="Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            </assemblies>
        </compilation>
        <authorization>
            <deny users="?" />
        </a开发者_JAVA技巧uthorization>
    </system.web>
</configuration>

Sorry for the LONG Post... But I really cant see the problem and i wont waste another 2 hours of my life trying to fix this!

Thank you!

Basically my site runs fine without the GridView. As soon as I add it, the web browser appears with that error.

Ive added the Microsoft.SqlServerCe.Client factory in the config...Still nothing


We had a similar problem. Turns out the SQL CE assembly was not on the target server, it is not a default part of the .NET Framework it is a secondary install. By including the SQL Server CE Assembly in our bin directory during deployment we were able to get everything running.

0

精彩评论

暂无评论...
验证码 换一张
取 消