我对C#和asp.net
非常陌生经过几个小时的努力,我已经能够从我的数据库中的表填充列表视图,这很棒。当我尝试更新项目时出现问题。
现在我的更新功能是:
public static void UpdateBook(USER_BOOK book)
{
var result = from r in ctx.USER_BOOK
where r.user_username == book.user_username &&
r.title == book.title
select r;
result.FirstOrDefault().title = book.title;
result.FirstOrDefault().author = book.author;
result.FirstOrDefault().numpages = book.numpages;
ctx.SaveChanges();
}
问题显然是因为我传入的书是更新后的书,如果标题被更改,则会出现问题(无论是编辑错误的书,还是找不到书。编辑)
我遇到的解决方案似乎是在用户单击编辑按钮时捕获初始值,将它们存储在会话中,并从我的函数中检索它们。
我已经抓住了编辑按钮的点击事件,但我不知道如何检索文本框内容。
如果你能帮助我,请提前致谢。
答案 0 :(得分:0)
在这种情况下使用会话不好。你看this link。尝试使用主键代码,datakey是数据库中的字段主键。你看起来功能
void UnitMeasureListView_ItemUpdating(Object sender, ListViewUpdateEventArgs e)
在链接中。您可以访问e.NewValues,e。给您更新功能。
答案 1 :(得分:0)
尝试将GUID添加到book table.it将是Book表的主键。所有事务都可以基于此GUID尝试使用此.make确保始终保持会话ID与此GUID相关
var result = from r in ctx.USER_BOOK
where r.user_username == book.user_username &&
r.Guid == Session['bookGuid']
select r;