繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> Object/DataSet Relational Mapping(对象/数据集关系映射2

Object/DataSet Relational Mapping(对象/数据集关系映射2

2007-10-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:/// /// DataSet转化为序列化类函数,类定义参考cXTM_User /// private void DataTableReturnOO(DataRow row, cXTM_User objModel) { Hashtable hTable = new Hashtable(); hTable = ReturnHashtable(row); Typ...

///

/// DataSet转化为序列化类函数,类定义参考cXTM_User

///

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);

}

}

///

/// 转换为DataTable

///

/// 数据源

/// 数据表名称

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;

}

///

/// 返回DataTable为哈希表键值对

///

/// 数据行对象

///

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

//{

///

/// PageBase 的摘要说明

///

///

/// 页面层(表示层)基类,所有页面继承该页面

///

public class PageBase : System.Web.UI.Page

{

#region 整个系统存在部分

private string _baseselect;

///

/// 查询字段

///

protected string baseselect

{

get

{

// TODO: 添加 BaseRule.OperationCode getter 实现

return _baseselect;

}

set

{

// TODO: 添加 BaseRule.OperationCode setter 实现

_baseselect = value;

}

}

///

/// 基类哈希表,在整个系统中存在

///

protected Hashtable baseHashtable = new Hashtable();

///

/// 界面哈希表,获取UI工厂获取的控件和控件值

///

protected Hashtable UIhashtable = new Hashtable();

///

/// 出错提示,默认值""

///

protected string errMsg = "";

///

/// 出错状态,默认值false

///

protected bool errState = false;

///

/// 私有变量_UISet

///

private DataSet _UISet = new DataSet();

///

/// 界面层数据集

///

protected DataSet UISet

{

get

{

// TODO: 添加 BaseRule.OperationCode getter 实现

return _UISet;

}

set

{

// TODO: 添加 BaseRule.OperationCode setter 实现

_UISet = value;

}

}

private DataTable _UITable = new DataTable();

///

/// 界面层数据表

///

protected DataTable UITable

{

get

{

// TODO: 添加 BaseRule.OperationCode getter 实现

return _UITable;

}

set

{

// TODO: 添加 BaseRule.OperationCode setter 实现

_UITable = value;

}

}

private string _pageTitle = "";

///

/// 页面标题

///

protected string pageTitle

{

get

{

// TODO: 添加 BaseRule.OperationCode getter 实现

return _pageTitle;

}

set

{

// TODO: 添加 BaseRule.OperationCode setter 实现

_pageTitle = value;

}

}

#endregion

#region 查询页面存在部分

///

/// List页面基类哈希表

///

protected Hashtable baseListHashtable = new Hashtable();

///

/// 页面总数.变量.1000w、10000w数据集使用

///

protected int pageCount;

///

/// 记录总数.变量.1000w、10000w数据集使用

///

protected int recordCount;

///

/// 记录总数.属性.1000w、10000w数据集使用

///

protected int RecordCount

{

get

{

return recordCount;

}

}

#endregion

#region 编辑页面存在部分

///

/// Edit页面基类哈希表

///

protected Hashtable baseEditHashtable = new Hashtable();

///

/// Edit页面,编辑数据哈希表

///

protected Hashtable baseEditFillHashtable = new Hashtable();

#endregion

///

/// 构造函数

///

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通用函数

///

/// 抛出出错消息提示

///

/// 页面

/// 出错消息

protected void throwErrMsg(Page page, string errMsg)

{

page.Response.Write("");

}

///

/// 刷新打开编辑窗体的List页面

///

/// 页面

protected void parentPageRefresh(Page page)

{

StringBuilder scriptString = new StringBuilder();

scriptString.Append("

责任编辑:admin
相关文章