【问题标题】:Returning record inserted successfully in C# ASP.NET在 C# ASP.NET 中成功插入返回记录
【发布时间】:2015-06-08 06:46:49
【问题描述】:

在我的 DAL 中,我有以下内容:

DB.ExecuteNonQuery(DBCommand);

然后在我的 BLL 中我有以下内容:

DAL.data.insertticket(a);

然后在我的表示层我有:

DAL.collection cobj = new collection();
BLL.business bobj = new business();
bobj.insertticket(cobj);

如何检查记录是否已插入数据库,然后让我的 lbl 淡入并在 2 秒后消失?

<asp:Label ID="lblUpdatedMessage" runat="server" 
           Text="Ticket Updated"></asp:Label>

我考虑在我的表示层中执行以下操作:

if (DAL.data.insertticket(a) == true) {
    lblUpdatedMessage.Visible = true;
}

但我收到一条错误消息:

当前上下文中不存在名称“a”

【问题讨论】:

  • 从数据库命令返回一个值,如果成功则返回 true,否则返回 false。
  • @PriceCheaperton 你在哪里定义了'a'?
  • @shariqueansari 它在 DAL 中定义
  • DB.ExecuteNonQuery(DBCommand) 语句将返回rows affected 的编号,只需将其返回给PL,并在您的PL 中验证rows affected is &gt; 0 的编号然后lblUpdatedMessage.Visible = true;跨度>
  • 您询问如何知道是否已插入记录,但您抱怨与第一个问题完全无关的错误。您能否更好地解释您的真正问题是什么?

标签: c# asp.net n-tier-architecture 3-tier


【解决方案1】:

ExecuteNonQuery 返回一个整数值,表示执行查询修改/删除/插入的记录数。如果插入失败,则为零,否则大于零(取决于调用影响的行数)。您需要做的就是将该值返回到调用链,直到您可以在表示层中处理它。

而且不要只是从表示层直接跳到数据层。这会使您构建的层结构完全无效:

数据层

int InsertObject(yourValidObjectInstance)
{
    .... code to prepare the command to be executed ...

    // returns 0 if no record has been added (failure)
    int recordsAffected = DB.ExecuteNonQuery(DBCommand);
    return recordAffected;
}

业务层

... code that checks if your object follows the business rules 
... and the validity of your object

int records = DAL.InsertObject(yourValidObject);
// True if you have inserted your records
return (record > 0);

表示层

if(BusinessLayer.AddObject(yourValidObject))
   // execute your presentation code.....

【讨论】:

  • 我了解 DAL 和 BLL 部分,但有点卡在我放的 PL 上:if BLL.business(bobj.insertticket(a)){ } 但出现错误
  • 'BLL.business' is a 'type', which is not valid in the given context
  • 我已经给出了流程的伪代码,当然你需要实例化完成通信所需的正确类。例如,如果您的业务层有一个名为 TicketBLL 的类,那么您需要一个 TicketBLL ticket = new Ticket(); 并调用使用 DAL 类插入票证的方法。但是,如果您使用业务和数据层中使用的确切代码发布一个新问题,也许会更好
猜你喜欢
  • 1970-01-01
  • 2011-04-01
  • 1970-01-01
  • 2013-08-29
  • 1970-01-01
  • 2016-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多