[原创]Object/DataSet Relational Mapping(对象/数据集关系映射)补充代码1

  1using System;
  2using System.Data;
  3using System.Configuration;
  4using System.Collections;
  5using System.Web;
  6using System.Web.Security;
  7using System.Web.UI;
  8using System.Web.UI.WebControls;
  9using System.Web.UI.WebControls.WebParts;
 10using System.Web.UI.HtmlControls;
 11
 12using IBatisNet.DataMapper;
 13using System.Reflection;
 14
 15/// <summary>
 16/// ODRM为结合ORM与DataSet,并自动根据O和DataSet生成对象,以便业务层处理
 17/// </summary>

 18public partial class ODRM_test : PageBase
 19{
 20    protected void Page_Load(object sender, EventArgs e)
 21    {
 22        if (!IsPostBack)
 23        {
 24            DataSet set11 = Mapper.Instance().QueryForDataSet("SelectXTM_UserByKey_Test",UIhashtable);
 25            DataTable table1 = ConvertDataTable(set11, "");
 26            //这里为自己定义的序列化类
 27            cXTM_User[] objModel = new cXTM_User[table1.Rows.Count];
 28            //DataTable转化为序列化类数组
 29            for (int y = 0; y < table1.Rows.Count; y++)
 30            {
 31                objModel[y] = new cXTM_User();
 32                DataTableConvertObject(table1.Rows[y], objModel[y]); 
 33            }

 34            //以DataSet模式绑定
 35            ExDataGrid1.DataSource = table1;
 36            //以序列化对象模式绑定
 37            //ExDataGrid1.DataSource = objModel;
 38            ExDataGrid1.DataBind();
 39        }

 40    }

 41
 42    protected void ExDataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
 43    {
 44        /*
 45         * 该部分应用范围
 46         * 查询一条数据的修改,可以用objModel.UserName
 47         * 而不必再使用DataTable[0].Rows[0]["UserName"]的模式
 48         * 提高面向对象的程度,并减少业务流程部分编码
 49         */

 50
 51        if (e.Item.ItemIndex != -1)
 52        {
 53            cXTM_User objModel = new cXTM_User();
 54            
 55            //如果为DataSet填充的DataGrid
 56            if (e.Item.DataItem.GetType().FullName == "System.Data.DataRowView")
 57            {
 58                DataTableConvertObject((DataRow)((DataRowView)e.Item.DataItem).Row, objModel);      
 59            }

 60            //否则认为为序列化对象填充
 61            else 
 62            {
 63                objModel = (cXTM_User)e.Item.DataItem; 
 64                   
 65            }

 66        }

 67    }

 68
 69    指定对象函数
192
193    通用函数
259
260
261
262
263}

264
posted @ 2006-12-01 21:14  Nick.Lee  阅读(1491)  评论(4编辑  收藏  举报