热门搜索:Photoshop 平面设计 Linux Vista Windows ASP.NET qq word 病毒 XP Excel 标志设计 

一种基于.Net 2.0的另类AOP

来源:佚名(读取中...) 2006-6-10 【字体: 】 切换为



  类似的应用还可以在访问数据库时。例如用DataReader访问数据库,必须要刻用完了Reader和Connection需要关闭,并且需要处理各种异常情况。用类似的方法可以写出比较方便的函数:

 public delegate T TryExecuteReaderDelegate(SqlDataReader reader);

  public T TryExecuteReader(SqlCommand command, TryExecuteReaderDelegate dele, T defaultValue)

  {

  command.Connection = conn;

  SqlDataReader reader = null;

  try

  {

  conn.Open();

  reader = command.ExecuteReader();

  return dele(reader);

  }

  catch

  {

  return defaultValue;

  }

  finally

  {

  if(reader != null && !reader.IsClosed)

  reader.Close();

  if(conn != null && conn.State != ConnectionState.Closed)

  conn.Close();

  }

  }
  使用:

  SqlCommand command = new SqlCommand("select xxxx");

  command.Parameters.AddWithValue("@paramName", value);

  String s = TryExecuteReader(command, delegate(SqlDataReader reader)

  {

  reader.Read();

  return reader.GetString(0);

  }, "haha");

  这样一来,使用的时候要方便很多,再也不用考虑连接是否关闭、是否处理了异常情况等问题:正常的时候返回想要的结果,异常的时候返回缺省值。

上一页  [1] [2] [3] [4] 

关注此文的读者还看过:
    用户评论
评论内容:不能超过100字,需审核,请自觉遵守互联网相关政策法规。
发表评论: 匿名发表 用户名: loading 位网友发表了评论 查看评论
(0/100)