教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> .NET类 >> ASP.NET >> Object/DataSet Relational Mapping(对象/数据集关系映射2 RSS订阅
Object/DataSet Relational Mapping(对象/数据集关系映射2
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
     /// <summary>
  
   /// DataSet转化为序列化类函数,类定义参考cXTM_User
  
   /// </summary>
  
   private void DataTableReturnOO(DataRow row, cXTM_User objModel)
  
   {
  
   Hashtable hTable = new Hashtable();
  
   hTable = ReturnHashtable(row);
  
  
  
   Type entitytype = Type.GetType(objModel.GetType().AssemblyQualifiedName);
  
  
  
   for (int j = 0; j < objModel.Propertylist.Length; j++)
  
   {
  
   PropertyInfo propertyinfo = entitytype.GetProperty(objModel.Propertylist[j]);
  
   propertyinfo.SetValue(objModel, hTable[objModel.Propertylist[j]], null);
  
   }
  
  
  
   }
  
  
  
   /// <summary>
  
   /// 转换为DataTable
  
   /// </summary>
  
   /// <param name="Source">数据源</param>
  
   /// <param name="DataMember">数据表名称</param>
  
   public static DataTable ConvertDataTable(object Source, string DataMember)
  
   {
  
   DataTable baseTable = new DataTable();
  
   if (Source is DataTable)
  
   {
  
   baseTable = (DataTable)Source;
  
   return baseTable;
  
   }
  
   if (Source is DataSet)
  
   {
  
  
  
   DataSet set1 = (DataSet)Source;
  
   if ((set1.Tables.Count > 1) && ((DataMember == null) || (DataMember == "")))
  
   {
  
   throw new Exception("If there is more than one table in your dataset, you must define the DataMember property to specify which table to use.");
  
   }
  
   if (set1.Tables.Count < 1)
  
   {
  
   throw new Exception("There are no tables in the datasource.");
  
   }
  
   if ((DataMember != null) && (DataMember != ""))
  
   {
  
   baseTable = set1.Tables[DataMember];
  
   return baseTable;
  
   }
  
   else
  
   {
  
   baseTable = set1.Tables[0];
  
   return baseTable;
  
   }
  
  
  
   }
  
   return baseTable;
  
   }
  
  
  
   /// <summary>
  
   /// 返回DataTable为哈希表键值对
  
   /// </summary>
  
   /// <param name="SourceTable">数据行对象</param>
  
   /// <returns></returns>
  
   public static Hashtable ReturnHashtable(DataRow SourceRow)
  
   {
  
   Hashtable hTable = new Hashtable();
  
   IList list = SourceRow.ItemArray;
  
   object[] tObj = new object[SourceRow.Table.Columns.Count];
  
  
  
   for (int i = 0; i < SourceRow.Table.Columns.Count; i++)
  
   {
  
   tObj[SourceRow.Table.Columns.IndexOf(SourceRow.Table.Columns[i].ColumnName)] = SourceRow.Table.Columns[i].ColumnName;
  
   }
  
  
  
   for (int x = 0; x < list.Count; x++)
  
   {
  
   hTable.Add(tObj[x].ToString(), list[x]);
  
   }
  
   return hTable;
  
   }
  
  
  
  }
  
  5. PageBase.cs
  
  using System;
  
  using System.Data;
  
  using System.Configuration;
  
  using System.Web;
  
  using System.Web.Security;
  
  using System.Web.UI;
  
  using System.Web.UI.WebControls;
  
  using System.Web.UI.WebControls.WebParts;
  
  using System.Web.UI.HTMLControls;
  
  
  
  using System.Reflection;
  
  using System.Text;
  
  using System.Collections;
  
  
  
  //namespace可要可不要
  
  //namespace Framework.Web.UIProcess
  
  //{
  
  /// <summary>
  
  /// PageBase 的摘要说明
  
  /// </summary>
  
  /// <summary>
  
  /// 页面层(表示层)基类,所有页面继承该页面
  
  /// </summary>
  
   public class PageBase : System.Web.UI.Page
  
   {
  
  
  
  
  
   #region 整个系统存在部分
  
   private string _baseselect;
  
   /// <summary>
  
   /// 查询字段
  
   /// </summary>
  
   protected string baseselect
  
   {
  
   get
  
   {
  
   // TODO: 添加 BaseRule.OperationCode getter 实现
  
   return _baseselect;
  
   }
  
   set
  
   {
  
   // TODO: 添加 BaseRule.OperationCode setter 实现
  
   _baseselect = value;
  
   }
  
   }
  
   /// <summary>
  
   /// 基类哈希表,在整个系统中存在
  
   /// </summary>
  
   protected Hashtable baseHashtable = new Hashtable();
  
   /// <summary>
  
   /// 界面哈希表,获取UI工厂获取的控件和控件值
  
   /// </summary>
  
   protected Hashtable UIhashtable = new Hashtable();
  
   /// <summary>
  
   /// 出错提示,默认值""
  
   /// </summary>
  
   protected string errMsg = "";
  
   /// <summary>
  
   /// 出错状态,默认值false
  
   /// </summary>
  
   protected bool errState = false;
  
   /// <summary>
  
   /// 私有变量_UISet
  
   /// </summary>
  
   private DataSet _UISet = new DataSet();
  
   /// <summary>
  
   /// 界面层数据集
  
   /// </summary>
  
   protected DataSet UISet
  
   {
  
   get
  
   {
  
   // TODO: 添加 BaseRule.OperationCode getter 实现
  
   return _UISet;
  
   }
  
   set
  
   {
  
   // TODO: 添加 BaseRule.OperationCode setter 实现
  
   _UISet = value;
  
   }
  
   }
  
   private DataTable _UITable = new DataTable();
  
   /// <summary>
  
   /// 界面层数据表
  
   /// </summary>
  
   protected DataTable UITable
  
   {
  
   get
  
   {
  
   // TODO: 添加 BaseRule.OperationCode getter 实现
  
   return _UITable;
  
   }
  
   set
  
   {
  
   // TODO: 添加 BaseRule.OperationCode setter 实现
  
   _UITable = value;
  
   }
  
   }
  
  
  
   private string _pageTitle = "";
  
   /// <summary>
  
   /// 页面标题
  
   /// </summary>
  
   protected string pageTitle
  
   {
  
   get
  
   {
  
   // TODO: 添加 BaseRule.OperationCode getter 实现
  
   return _pageTitle;
  
   }
  
   set
  
   {
  
   // TODO: 添加 BaseRule.OperationCode setter 实现
  
   _pageTitle = value;
  
   }
  
   }
  
   #endregion
  
  
  
   #region 查询页面存在部分
  
   /// <summary>
  
   /// List页面基类哈希表
  
   /// </summary>
  
   protected Hashtable baseListHashtable = new Hashtable();
  
   /// <summary>
  
   /// 页面总数.变量.1000w、10000w数据集使用
  
   /// </summary>
  
   protected int pageCount;
  
  
  
   /// <summary>
  
   /// 记录总数.变量.1000w、10000w数据集使用
  
   /// </summary>
  
   protected int recordCount;
  
   /// <summary>
  
   /// 记录总数.属性.1000w、10000w数据集使用
  
   /// </summary>
  
   protected int RecordCount
  
   {
  
   get
  
   {
  
   return recordCount;
  
   }
  
   }
  
   #endregion
  
  
  
   #region 编辑页面存在部分
  
   /// <summary>
  
   /// Edit页面基类哈希表
  
   /// </summary>
  
   protected Hashtable baseEditHashtable = new Hashtable();
  
   /// <summary>
  
   /// Edit页面,编辑数据哈希表
  
   /// </summary>
  
   protected Hashtable baseEditFillHashtable = new Hashtable();
  
   #endregion
  
  
  
  
  
   /// <summary>
  
   /// 构造函数
  
   /// </summary>
  
   public PageBase()
  
   {
  
   this.Load += new EventHandler(PageBase_Load);
  
   }
  
  
  
   private void PageBase_Load(object sender, EventArgs e)
  
   {
  
   if (!Page.IsPostBack)
  
   {
  
  
  
   //整个流程需要的控制部分
  
   if (Session["baseHashtable"] != null)
  
   {
  
   //从Session中获取哈希对象列表
  
   baseHashtable = (Hashtable)Session["baseHashtable"];
  
   }
  
  
  
   //编辑页面访问权限和访问控制,只在第一次载入页面的时候有效
  
   if (Session["baseEditHashtable"] != null)
  
   {
  
   //获取Edit页面哈希对象列表
  
   baseEditHashtable = (Hashtable)Session["baseEditHashtable"];
  
   //获取完后释放对应Session对象
  
   Session.Remove("baseEditHashtable");
  
   }
  
   else
  
   {
  
   //如果为初始状态,新增是否安全编辑状态值,默认值false,不安全
  
   baseEditHashtable.Add("EditSafeState", false);
  
   }
  
   }
  
  
  
   //查询页面访问控制
  
   if (Session["baseListHashtable"] != null)
  
   {
  
   //获取Edit页面哈希对象列表
  
   baseListHashtable = (Hashtable)Session["baseListHashtable"];
  
   //获取完后释放对应Session对象
  
   Session.Remove("baseListHashtable");
  
   }
  
   else
  
   {
  
   //如果为初始状态,新增是否刷新查询页面,默认值false,不刷新
  
   baseListHashtable.Add("IsRefresh", false);
  
   }
  
   }
  
  
  
  
  
   #region UI通用函数
  
   /// <summary>
  
   /// 抛出出错消息提示
  
   /// </summary>
  
   /// <param name="page">页面</param>
  
   /// <param name="errMsg">出错消息</param>
  
   protected void throwErrMsg(Page page, string errMsg)
  
   {
  
   page.Response.Write("<script>window.alert(\"" + errMsg.Replace("\"", "'") + "\");</script>");
  
   }
  
  
  
   /// <summary>
  
   /// 刷新打开编辑窗体的List页面
  
   /// </summary>
  
   /// <param name="page">页面</param>
  
   protected void parentPageRefresh(Page page)
  
   {
  
   StringBuilder scriptString = new StringBuilder();
  
   scriptString.Append("<script language = javascript>");
  
   //调用Function.js中的refresh()刷新父窗体
  
   scriptString.Append("window.opener.refresh(false,\"\");");
  
  
  
   scriptString.Append(" window.focus();");
  
   scriptString.Append(" window.opener=null;");
  
   scriptString.Append(" window.close(); ");
  
  
  
   scriptString.Append("</" + "script>");
  
   page.Response.Write(scriptString.ToString());
  
   }
  
  
  
   /// <summary>
  
   /// 重置页面
  
   /// </summary>
  
   /// <param name="page">页面</param>
  
   protected void pageReset(Page page)
  
   {
  
   StringBuilder scriptString = new StringBuilder();
  
   scriptString.Append("<script language = javascript>");
  
  
  
   scriptString.Append(" this.location.reset(); ");
  
  
  
   scriptString.Append("</" + "script>");
  
   page.Response.Write(scriptString.ToString());
  
   }
  
  
  
   /// <summary>
  
   /// js界面工厂传入后生成Hashtable
  
   /// </summary>
  
   /// <param name="splitStr">js界面工厂传入字符串</param>
  
   /// <returns></returns>
  
   public Hashtable AjaxUIFactory(string splitStr)
  
   {
  
   string[] fristStr = splitStr.Split(',');
  
   Hashtable table = new Hashtable();
  
   for (int x = 0; x < fristStr.Length; x++)
  
   {
  
   string[] secondStr = fristStr[x].Split('|');
  
   if (secondStr.Length == 3)
  
   {
  
   //取截取后字符串和值
  
   table.Add(secondStr[1], secondStr[2]);
  
   }
  
   }
  
   return table;
  
   }
  
   #endregion
  
  }
  
  http://www.cnblogs.com/mail-ricklee/archive/2006/11/23/569270.HTML
  
    。



来源:upschool.com.cn
作者:
关键字:Object,DataSet,Mapping,数据集关系映射2
发表日期:2006-11-24

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:ASP.Net常用功能整理- - 生成图片的缩略图   下一篇:Object/DataSet Relational Mapping(对象/数据集关系映射1


本文的相类似文章
  • 使用FileSystemObject来读写文本文件
  • 初识object-对象(object)是什么?
  • 初识object-如何获得object?
  • 初识object-如何使用objects?
  • 初识object-第一个object
  • 梦想成真 - The MS Office Object Models
  • 梦想成真- The MS Office Object Models: Part 2
  • 用FileSystemObject检测光驱的盘符
  • 在VB中中止FileSystemObject的Delete方法
  • DataSet 添加数据集、行、列、主键和外键等操作示例
  • 网友评论 查看本文全部评论
    笔 名: *
    评 论:
    最多500字。当前字数:0
    联系方式:
    验证码:
    在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com