ASP.NET,Gridview和Linqdatasource在更新时生成错误

时间:2012-06-29 18:25:56

标签: c# asp.net linq entity-framework-4

示例

<asp:GridView ID="data_basic_addresses" runat="server" AllowPaging="False" BorderWidth="0" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="AddressId" HorizontalAlign="Center" 
DataSourceID="LinqAddressDS" PageSize="20" CssClass="GridViewClass">
<Columns>
   <asp:BoundField DataField="AddressId" HeaderText="AddressId" SortExpression="AddressId" ReadOnly="True"/>
   <asp:BoundField DataField="Address" HeaderText="Street" SortExpression="Address"  />
   <asp:BoundField DataField="City" HeaderText="City" SortExpression="City"  />
   <asp:BoundField DataField="State" HeaderText="State" SortExpression="State"  />
   <asp:BoundField DataField="Zip" HeaderText="Zip" SortExpression="Zip"  />
   <asp:CommandField HeaderText="Options" ShowDeleteButton="True" ShowEditButton="True" />
</Columns>
</asp:GridView>

<asp:LinqDataSource ID="LinqAddressDS" runat="server" OnContextCreating="LinqDS_ContextCreating" Where="AcctNo == @AcctNo"
ContextTypeName="MyProject.Models.DB_DataDataContext" EnableDelete="True" EnableInsert="True" 
EnableUpdate="True" TableName="Tbl_Addresses" OrderBy="AddressId">
    <WhereParameters>
        <asp:QueryStringParameter DefaultValue="1" Name="AcctNo" QueryStringField="AcctNo" Type="Int32" />
    </WhereParameters>
</asp:LinqDataSource>

我在page_load方法中设置了WhereParamater值

每次在更改数据后按下更新链接时,我都会收到一条错误,指出“发生了严重错误。调用目标已抛出异常。”或“无法访问已处置的对象”

当网格视图重新加载时,数据会更新。我所做的一切似乎都有所作为。有没有人对为什么有任何想法?

提前致谢!

1 个答案:

答案 0 :(得分:0)

找到了解决问题的方法

我试图传递我自己的模型连接实例,以便在LinqDS_ContextCreating方法中使用。这适用于除Update命令之外的所有功能。我进入并更新了model.designer.cs文件中的模型默认连接字符串,现在更新正常。