當我嘗試更新或刪除一個選定的項目時,它會拋出「未找到或更改的行」。例外。基本上我只做了一個linq查詢並使用了大部分自動生成函數。我添加了LinqDataSource1_ContextCreated函數,但它沒有幫助。linq udpate:「找不到或更改的行」。例外。請幫助!
請幫幫我!提前致謝!
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
AutoGenerateDeleteButton="True" AutoGenerateEditButton="True"
DataSourceID="LinqDataSource1" Width="100%"
onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:BoundField DataField="JobId" HeaderText="JobId" ReadOnly="True" />
<asp:BoundField DataField="JobTitle" HeaderText="JobTitle" />
<asp:BoundField DataField="Summary" HeaderText="Summary"/>
<asp:BoundField DataField="Detail" HeaderText="Detail" />
<asp:BoundField DataField="CompanyName" HeaderText="CompanyName" />
<asp:BoundField DataField="CompanyEmail" HeaderText="CompanyEmail" />
<asp:CheckBoxField DataField="IsTop" HeaderText="IsTop" />
<asp:CheckBoxField DataField="IsShown" HeaderText="IsShown" />
<asp:BoundField DataField="PostDate" HeaderText="PostDate"
ApplyFormatInEditMode="True" DataFormatString="{0:MMM,dd,yy}"
HtmlEncode="False" ReadOnly="True"/>
<asp:BoundField DataField="UserName" HeaderText="UserName" ReadOnly="True"/>
</Columns>
</asp:GridView>
<asp:LinqDataSource ID="LinqDataSource1" runat="server"
ContextTypeName="JobPostDataContext" EntityTypeName=""
onselecting="LinqDataSource1_Selecting" TableName="JobLists"
EnableDelete="True" EnableUpdate="True" >
</asp:LinqDataSource>
protected void LinqDataSource1_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
JobPostDataContext db = new JobPostDataContext();
var query = from uM in db.aspnet_Memberships
join uD in db.UserDetails
on uM.UserId equals uD.UserId
join u in db.aspnet_Users
on uM.UserId equals u.UserId
join jL in db.JobLists
on uM.UserId equals jL.UserId
where u.UserName == Request.QueryString["UserName"]
select new
{
jL.JobId,
jL.JobTitle,
jL.Summary,
jL.Detail,
jL.CompanyName,
jL.CompanyEmail,
jL.PostDate,
jL.IsTop,
jL.IsShown,
u.UserName
};
e.Result = query;
}
protected void LinqDataSource1_ContextCreated(object sender, LinqDataSourceStatusEventArgs e)
{
JobPostDataContext db = e.Result as JobPostDataContext;
System.Data.Linq.DataLoadOptions dl = new System.Data.Linq.DataLoadOptions();
dl.LoadWith<JobList>(d => d.JobId);
db.LoadOptions = dl;
}
未找到或改變行。 描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。
異常詳細信息:System.Data.Linq.ChangeConflictException:找不到或更改了行。
源錯誤:
在當前web請求的執行過程中生成未處理的異常。關於異常的來源和位置的信息可以使用下面的異常堆棧跟蹤來標識。
堆棧跟蹤:
[ChangeConflictException: Row not found or changed.]
System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode) +996823
System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode) +378
System.Data.Linq.DataContext.SubmitChanges() +23 System.Web.UI.WebControls.LinqToSqlWrapper.SubmitChanges(DataContext dataContext) +9
System.Web.UI.WebControls.LinqDataSourceView.UpdateDataObject(Object dataContext, Object table, Object oldDataObject, Object newDataObject) +115 System.Web.UI.WebControls.LinqDataSourceView.UpdateObject(Object oldEntity, Object newEntity) +262
System.Web.UI.WebControls.QueryableDataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +115
System.Web.UI.WebControls.ContextDataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +100
System.Web.UI.WebControls.LinqDataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +41
System.Web.UI.DataSourceView.Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +95
System.Web.UI.WebControls.GridView.HandleUpdate(GridViewRow row, Int32 rowIndex, Boolean causesValidation) +1226
System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +716
System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +95
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +121
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +125
System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +169
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +9
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +176
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563