分页解决方案之数据访问函数库2011-03-19 博客园 金色海洋如何访问数据库?一个老掉牙的问题,方法多了去了,什么直接使用ado.net、使用SQLHelp、使用微软的企业库、使用ORM、使用LinQ to SQL等等,还可以使用自己封装的函数库,这里我就想说一下我的数据访问函数库的使用方法。您可能会说了,这么简单的东东还用说吗,重复制作轮子有意义吗?这个嘛,个人有个人的看法了,我也不多说了,先看使用方法吧。1、删除一条数据,不使用事务protected void Btn_Del_Click(object sender, EventArgs e)
{
  //不用事务,直接删除数据
  string sql = "delete from News_NewsInfo where newsID = 18 ";
  //执行SQL语句
  dal.ExecuteNonQuery(sql);
  判断是否出现异常 和 是否真的删除了一条数据#region 判断是否出现异常 和 是否真的删除了一条数据
  //判断是否出现异常
  if (dal.ErrorMessage.Length > 0)
  {
   //出现了异常,客户端弹出提示信息
   Functions.PageRegisterAlert(Page,"删除数据的时候发生异常,请与管理员联系!");
   return;
  }
  //判断是否真的删除了一条数据
  //ExecuteRowCount 会返回操作影响的行数(不包括select语句)
  if (dal.ExecuteRowCount != 1)
  {
   //没有正确删除一条数据,客户端弹出提示信息
   Functions.PageRegisterAlert(Page, "没有正确删除这条数据,请与管理员联系!");
   return;
  }
  #endregion
}2、删除多条数据,使用事务protected void Btn_DelMore_Click(object sender, EventArgs e)
{
 //使用事务,删除多个表里面的数据
 //开启一个事务
 dal.TranManager.TranBegin();
 string sql = "delete from News_NewsInfo where newsID = 13 ";
 //执行SQL语句
 dal.ExecuteNonQuery(sql);
 判断是否出现异常 和 是否真的删除了一条数据#region 判断是否出现异常 和 是否真的删除了一条数据
 //判断是否出现异常
 if (dal.ErrorMessage.Length > 0)
 {
  //出现了异常,客户端弹出提示信息
  //数据访问函数库内部会自动回滚事务,外部不用回滚!
  Functions.PageRegisterAlert(Page, "删除数据的时候发生异常,请与管理员联系!");
  return;
 }
 //判断是否真的删除了一条数据
 //ExecuteRowCount 会返回操作影响的行数(不包括select语句)
 if (dal.ExecuteRowCount != 1)
 {
  //没有正确删除一条数据,客户端弹出提示信息
  //没有产生异常,内部并没有自动回滚事务,所以请调用回滚的函数,回滚事务!
  dal.TranManager.TranRollBack();
  Functions.PageRegisterAlert(Page, "没有正确删除这条数据,请与管理员联系!");
  return;
 }
 #endregion
 sql = "delete from News_NewsInfo where newsID = 14  ";
 //执行SQL语句
 dal.ExecuteNonQuery(sql);
 判断是否出现异常 和 是否真的删除了一条数据#region 判断是否出现异常 和 是否真的删除了一条数据
 //判断是否出现异常
 if (dal.ErrorMessage.Length > 0)
 {
  //出现了异常,客户端弹出提示信息
  //数据访问函数库内部会自动回滚事务,外部不用回滚!
  Functions.PageRegisterAlert(Page, "删除数据的时候发生异常,请与管理员联系!");
  return;
 }
 //判断是否真的删除了一条数据
 //ExecuteRowCount 会返回操作影响的行数(不包括select语句)
 if (dal.ExecuteRowCount != 1)
 {
  //没有正确删除一条数据,客户端弹出提示信息
  //没有产生异常,内部并没有自动回滚事务,所以请调用回滚的函数,回滚事务!
  dal.TranManager.TranRollBack();
  Functions.PageRegisterAlert(Page, "没有正确删除这条数据,请与管理员联系!");
  return;
 }
 #endregion
 //可以继续执行其他的操作,不仅仅是删除语句,insert、Update语句都可以执行。
 //执行之后都要进行判断
 //所有的操作都正确执行完毕之后,需要提交事务
 dal.TranManager.TranCommit();
 //注意,事务不支持嵌套!
}