返回记录在C#ASP.NET中成功插入

时间:2015-04-03 07:08:45

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

在我的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;
}

但是我收到一个错误说:

  

名称&#39; a&#39;在当前上下文中不存在

1 个答案:

答案 0 :(得分:2)

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.....