教程中国
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(对象/数据集关系映射1 RSS订阅
Object/DataSet Relational Mapping(对象/数据集关系映射1
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
     在.Net的开发领域,您和您的公司是不是在为以下问题所困扰
  
  1.DataSet中DataRow只能以DataTable[0].Rows[0][“Name”]的方式获取数据
  
  2.Sql配置的不动态,不清晰的Sql拼凑
  
  3.使用JAVA 的ORM设计.Net,使用对象层,每一次修改都将影响反射的对象。
  
  那么请继续看下面的文章
  
  Object/DataSet Relational Mapping
  
  (对象/数据集关系映射)
  
  NickLee.ODRM模式可以很好的解决以上问题
  
  1.DataSet中DataRow只能以DataTable[0].Rows[0][“Name”]的方式获取数据
  
  方案:DataRow转化为序列化对象,但序列化对象只作为清晰的对象操作实体处理业务判断和数据
  
  2.Sql配置的不动态,不清晰的Sql拼凑
  
  方案:采用IBatisNet数据层构架,采用IBatisNet动态的SQL语法,但返回DataSet
  
  3.使用JAVA 的ORM设计.Net,使用对象层,每一次修改都将影响反射的对象。
  
  方案:清晰的O(对象层),无反射机制,避免每一次修改对对象层的改动。
  
  下面做详细的说明
  
   以下代码演示将包含在NickLee.Framework.2.0.1.2以上版本中,当然,我们只是提供一种思想,灵活的方案,仅代表TheFallAngel团队的思想。
  
   必须引用的dll
  
   IBatisNet(Version 1.5及其以后) with NickLee.Framework修改版本
  
   NickLee.Web.UI(Version 2006.2.1447及其以后版本)
  
  1. cXTM_User.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;
  
  
  
  /// <summary>
  
  /// cXTM_User.序列化
  
  /// </summary>
  
  [Serializable]
  
  public class cXTM_User
  
  {
  
   private int _dID;
  
   private string _userName;
  
   public cXTM_User()
  
   {
  
   //
  
   // TODO: 在此处添加构造函数逻辑
  
   //
  
   }
  
   public int DID
  
   {
  
   get
  
   {
  
   return _dID;
  
   }
  
   set
  
   {
  
   _dID = value;
  
   }
  
   }
  
   public string UserName
  
   {
  
   get
  
   {
  
   return _userName;
  
   }
  
   set
  
   {
  
   _userName = value;
  
   }
  
   }
  
   /// <summary>
  
   /// Propertylist中数组请定义该类中属性,并确保名称唯一性
  
   /// 以及与XTM_User中SelectXTM_UserByKey_Test中查询名称统一
  
   /// </summary>
  
   public string[] Propertylist
  
   {
  
   get
  
   {
  
   return new string[] { "UserName", "DID" };
  
   }
  
   }
  
  }
  
  2. XTM_User.XML
  
  <?xml version='1.0' encoding='UTF-8' ?>
  
  <sqlMap namespace='XTM_User' xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  
  <statements>
  
   <select id='SelectXTM_UserByKey_Test' parameterClass='System.Collections.Hashtable'>
  
   SELECT
  
   Top 5
  
   [DID],
  
   [UserName],
  
   [LoginName],
  
   [PWD],
  
   [LoginFlag],
  
   [StopFlag],
  
   [LoginTime],
  
   [LASTUPDATE]
  
   FROM [XTM_User]
  
   </select>
  
  </statements>
  
  </sqlMap>
  
  
  
  3. test.ASPx
  
  <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="ODRM_test" %>
  
  <%@ Register Assembly="NickLee.Web.UI" Namespace="NickLee.Web.UI" TagPrefix="NickLee" %>
  
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  
  <html xmlns="http://www.w3.org/1999/xhtml" >
  
  <head runat="server">
  
   <title>Object/DataSet Relational Mapping(对象/数据集关系映射)</title>
  
  </head>
  
  <body>
  
   <form id="form1" runat="server">
  
   <div>
  
   <NickLee:ExDataGrid ID="ExDataGrid1" runat="server" OnItemDataBound="ExDataGrid1_ItemDataBound">
  
   </NickLee:ExDataGrid></div>
  
   </form>
  
  </body>
  
  </html>
  
  4. test.ASPx.cs
  
  using System;
  
  using System.Data;
  
  using System.Configuration;
  
  using System.Collections;
  
  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 IBatisNet.DataMapper;
  
  using System.Reflection;
  
  
  
  public partial class ODRM_test : PageBase
  
  {
  
   protected void Page_Load(object sender, EventArgs e)
  
   {
  
   if (!IsPostBack)
  
   {
  
   DataSet set11 = Mapper.Instance().QueryForDataSet("SelectXTM_UserByKey_Test",UIhashtable);
  
   DataTable table1 = ConvertDataTable(set11, "");
  
   //这里为自己定义的序列化类
  
   cXTM_User[] objModel = new cXTM_User[table1.Rows.Count];
  
   //DataTable转化为序列化类数组
  
   for (int y = 0; y < table1.Rows.Count; y++)
  
   {
  
   objModel[y] = new cXTM_User();
  
   DataTableReturnOO(table1.Rows[y], objModel[y]);
  
   }
  
   //以DataSet模式绑定
  
   ExDataGrid1.DataSource = table1;
  
   //以序列化对象模式绑定
  
   //ExDataGrid1.DataSource = objModel;
  
   ExDataGrid1.DataBind();
  
   }
  
   }
  
  
  
   protected void ExDataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
  
   {
  
   /*
  
   * 该部分应用范围
  
   * 查询一条数据的修改,可以用objModel.UserName
  
   * 而不必再使用DataTable[0].Rows[0]["UserName"]的模式
  
   * 提高面向对象的程度,并减少业务流程部分编码
  
   */
  
  
  
   if (e.Item.ItemIndex != -1)
  
   {
  
   cXTM_User objModel = new cXTM_User();
  
  
  
   //如果为DataSet填充的DataGrid
  
   if (e.Item.DataItem.GetType().FullName == "System.Data.DataRowView")
  
   {
  
   DataTableReturnOO((DataRow)((DataRowView)e.Item.DataItem).Row, objModel);
  
   }
  
   //否则认为为序列化对象填充
  
   else
  
   {
  
   objModel = (cXTM_User)e.Item.DataItem;
  
  
  
   }
  
   }
  
   }
  
  
    。



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

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

上一篇:Object/DataSet Relational Mapping(对象/数据集关系映射2   下一篇:ASP.NET 2.0高级数据处理之处理Null值


本文的相类似文章
  • 使用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