设为首页 | 加入收藏 | 联系站长
Google
 | 星际争霸 | 星际争霸II | 暗黑破坏神
 | 魔兽争霸 | 英雄无敌  
 您现在的位置: 好技术学习网 >> 技术文章 >> ASP.NET技术 >> ASP.NET技术应用 >> 文章正文
相 关 文 章
解析.Net框架下的XML编程技…
VS.NET下web项目源代码管理
NUnit学习之VS.net 2005篇
在VS.NET 2005中体验clicko…
使用VS.NET 2005 Beta 2初次…
VS.NET 2002下水晶报表的安…
VS.Net中的水晶报表的应用
vs.net+c#程序快速开发数据…
VS.NET解决方案的版本兼容问…
当VS.NET2003遇上2005,WebS…
最 新 热 门
最 新 推 荐
精 彩 游 戏
移动能力强,防御强大,任何地方都可以建筑,隐形,多样性,船舶,科技树…
[星际补丁]1.14·1.13f·1.08b
[星际2]酷图 [星际2]人族视频
[人类]大法师  [兽族]暗影猎手
[精灵]恶魔猎手 [不死]死亡骑士
[资讯]魔兽资讯 [图库]魔兽酷图
[下载]魔兽下载 [壁纸]精美壁纸
暗黑破坏神入门 暗黑破坏神指引
[Hero5]宝物一览   英雄无敌
当前时间是:
框架使用及规范参考
作者:无锋不起… 来源:转自酷网动力(www.ASPCOOL.COM) 时间:2008-2-17 17:25:44 『 字号:  』
1. 三层结构模式开发:
  基类介绍:
  (1) 数据层(DAL): Framework.DAL.DbObject必须继承,里面包括对存储过程 RunProcedure 和sql语句RunSQL的数据处理函数,根据参数不同,提供了四种重载,可返回四中数据类型:
  
  
  执行sql语句----------------------------------------------------#region 执行sql语句----------------------------------------------------
   /**////<summary>
   ///1. 执行sql语句,
   /// rowsAffected=-1, 执行查询,并返回结果集中第一行第一列;
   /// rowsAffected=0 或其他, 返回受影响的行数
   ///</summary>
   /// <example>
   /// 参数:
   /// IDataParameter[] parameters = new IDataParameter[3];
   /// parameters[0] = GetParameter("@UserID", System.Data.DbType.Int32, currentUser.UserID);
   /// parameters[1] = GetParameter("@Photo", System.Data.DbType.Binary, currentUser.Photo);
   /// parameters[2] = GetParameter("@ImageType", System.Data.DbType.String, currentUser.ImageType);
   /// 或
   /// SqlParameter[] parameters ={
   /// new SqlParameter("@NodeId", SqlDbType.Int, 4),
   /// new SqlParameter("@Depth", SqlDbType.Int, 4)};
   /// parameters[0].Value = 36;
   /// parameters[1].Value = 4;
   /// </example>
   ///<remarks>
   /// int rowsAffected = 0;
   /// return RunSQL("sql", rowsAffected [, parameters]);
   ///</remarks>
   protected int RunSQL(string sql, ref int rowsAffected, params IDataParameter[] parameters)
   { }
  
   /**////<summary>
   ///2. 执行sql语句,并返回 DataReader
   ///</summary>
   ///<remarks>
   /// return RunSQL("sql" [, parameters]);
   ///</remarks>
   protected IDataReader RunSQL(string sql, params IDataParameter[] parameters)
   {}
  
   /**////<summary>
   ///3. 执行sql语句,并返回 DataSet
   ///</summary>
   ///<remarks>
   /// return RunSQL("sql", tableName [, parameters]);
   ///</remarks>
   protected DataSet RunSQL(string sql, string tableName, params IDataParameter[] parameters)
   {}
  
   /**////<summary>
   ///4. 执行 FillDataSet
   ///</summary>
   ///<remarks>
   /// return RunSQL("sql", tableName, dataSet [, parameters]);
   ///</remarks>
   protected void RunSQL(string sql, string tableName, DataSet dataSet, params IDataParameter[] parameters)
   {}
  #endregion
  
  (2) 业务层(BLL):必须继承 Framework.BLL.BizObject,暂无函数。
  
  (3) 用户层(UI):在 *.aspx.cs 中继承Framework.UI.PageBase,里面提供了在UI可直接使用的公共函数。
  
  (4) App_Code中模块结构参考:
  
  
  (5) Entity示例:
  
  注意第二个构造函数,在BLL需要返回Entity时,根据DAL返回的DataSet.Tables[0].Rows[0]作为参数,可直接构造Entity返回。
  
  
  namespace RM.Entity
  {
   /**//// <summary>
   /// 歌曲实体
   /// </summary>
   public class MusicInfo : BaseInfo
   {
   属性#region 属性
   private int _CategoryID;
   /**//// <summary>类别ID</summary>
   public int CategoryID
   {
   get { return _CategoryID; }
   set { _CategoryID = value; }
   }
  
   private string _Category;
   /**//// <summary>类别</summary>
   public string Category
   {
   get { return _Category; }
   set { _Category = value; }
   }
   private string _Artist;
   /**//// <summary>歌手名,30个字节</summary>
   public string Artist
   {
   get { return _Artist; }
   set { _Artist = value; }
   }
  
   private string _Album;
   /**//// <summary>专辑名称,30个字节</summary>
   public string Album
   {
   get { return _Album; }
   set { _Album = value; }
   }
  
   private string _Year;
   /**//// <summary>年代,4个字符</summary>
   public string Year
   {
   get { return _Year; }
   set { _Year = value; }
   }
  
   private string _Comment;
   /**//// <summary>注释,28个字节</summary>
   public string Comment
   {
   get { return _Comment; }
   set { _Comment = value; }
   }
   #endregion
  
   构造函数#region 构造函数
   public MusicInfo()
   { }
  
   public MusicInfo(DataRow dataRow)
   {
   this.Title = (string)dataRow["Title"];
   this.CategoryID = (int)dataRow["CategoryID"];
   this.Category = (string)dataRow["CategoryName"];
   this.Album = dataRow["Album"] == System.DBNull.Value ? string.Empty : dataRow["Album"].ToString();
   this.Artist = dataRow["Artist"] == System.DBNull.Value ? string.Empty : dataRow["Artist"].ToString();
   this.Comment = dataRow["Comment"] == System.DBNull.Value ? string.Empty : dataRow["Comment"].ToString();
   this.Length = Convert.ToDateTime(dataRow["Length"]);
   this.Url = dataRow["Url"] == System.DBNull.Value ? string.Empty : dataRow["Url"].ToString();
   this.Year = dataRow["Year"] == System.DBNull.Value ? string.Empty : dataRow["Year"].ToString();
   }
   #endregion
   }
  }
  
  2. 全局信息:Framework.Globals 全局静态变量,静态属性,静态方法
  
  3. 错误信息处理:Framework.AppException
  
  自定义错误信息处理,为合理显示程序错误信息,避免在客户端暴露太多有关程序信息。根据参数不同实例化此类即可。内有两个静态方法:
  
  (1)LogEvent:将错误日志写入windows系统事件日志;
  
  (2)LogFile:将错误日志写入日志文件。
  
  4. 命名问题:简短明了,见其名知其义。
  
  5. 要使用 ///<summary>***///</summary> 对类、方法属性等进行说明!在其上一行输入“///”即可自动产生后面内容。
  
  
    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。

  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【打印本文】【关闭窗口

    网站公告 | 关于本站 | 联系站长 | 设为首页 | 加入收藏 | 友情链接 | 版权申明 | 广告服务 | 网站地图 | 访客留言

    Copyright ©
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览
    | |
    本站大部分信息资源来源于网络,仅供学习|研究|探讨|收藏之用,版权归原作者所有!