///
/// 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("
- ASP.NET 2.0-选用DataSet或DataReader
- DataSet 添加数据集、行、列、主键和外键等操作示例
- Object/DataSet Relational Mapping(对象/数据集关系映射1
- xmlHTTP xmlDOC 与 C#中DataSet的结合 实现AJAX简单示例
- DataSet 多页套打的实践--发票套打
- 关于DataSet与Strongly typed DataSet几点思考
- O/R Mapping 我们到底要什么?
- DataSet的加密解密
- you can save the small tables into memory using application object
- 将DataSet更新自动提交到数据库工具类实现

