在我的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;在当前上下文中不存在
答案 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.....