gpt4 book ai didi

c# - AffectedRows 在 FormView 的 ItemInserted 中总是 -1

转载 作者:太空宇宙 更新时间:2023-11-03 13:35:21 25 4
gpt4 key购买 nike

我有一个使用模型绑定(bind)的 ASP.NET 4.5 Web 表单应用程序。我已经按照本教程创建了一个业务逻辑层:http://www.asp.net/web-forms/tutorials/data-access/model-binding/adding-business-logic-layer

因此我的 FormView 的 InsertMethod 位于适当的 BLL 类中。 BLL 类在我的代码隐藏的 OnCallingDataMethods 方法中按照上面的示例定义。然而,OnItemInserted 方法,我已经直接在我的页面的代码隐藏类中定义,因为我觉得它不是每个人所说的业务逻辑,而是前端类型逻辑,用于根据已完成的插入向用户提供反馈。

我的问题是无论 Insert 的结果如何,OnItemsInserted 方法中的 AffectedRows 属性始终为 -1。所以我永远无法根据这个 MSDN 示例验证插入是否成功:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.formview.iteminserted.aspx

当使用 ASP.Net 4.5 Web Forms 模型绑定(bind)的新模型绑定(bind)技术时,AffectedRows 属性是否错误或未填充到 FormViewInsertedEventArgs 集合中?还是我做错了什么?

最佳答案

我的解决方案是结合上面提到的业务层检查任何模型错误和 DBUpdateException,然后在 FormView 的 ItemInserted 事件中:

protected void personForm_ItemInserted(object sender, FormViewInsertedEventArgs e)
{
if (this.ModelState.IsValid)
{
labResponse.Text = "New record added. Woohoo!";
}
else
{
labResponse.Text = "";
}
personForm.DefaultMode = FormViewMode.Insert;
}

这似乎适用于我的应用程序并且可以满足我的需求。从我的测试来看,如果存在模型错误,它永远不会到达此事件,因此可以安全地假设如果 modelState 有效并且您已经到达 OnInserted 事件,使用 EF 5 + 模型绑定(bind),您的记录已成功插入。

我们肯定希望在 MSDN 上看到更多详尽的示例,并在 ASP Webforms 中看到有关模型绑定(bind)的文档,因为至少可以说当前系列教程非常初级。

关于c# - AffectedRows 在 FormView 的 ItemInserted 中总是 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18876451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com