自定义带结构的可序列化数据集DataSet.
来源:互联网 发布:四年级数学优化答案 编辑:程序博客网 时间:2024/05/04 12:35
(一).说明
在编程过程中有没有遇到这样的问题: 偶尔因为某种原因,数据库表需要改一字段名称。比如:将: Name改为: PersonName.
接下来程序员就把所有涉及到的代码打开,找到类似: ds.Table[0].Row[n]["Name"]的语句,修改成: ds.Table[0].Row[n]["Name"].
其实完全可以不用这么做,只加一个带结构的DataSet就OK了。 修改只修改本类代码文件中的一个属性就OK了,而且除本类代码文件
之外的应用程式代码根本不用修改.
(二).代码:
using System;
using System.Data;
using System.Runtime.Serialization;namespace SchemeDataSet
{
/// >summary<
/// 包含客户信息的自定义的可序列化的数据集(DataSet)/// >/summary<
[System.ComponentModel.DesignerCategory("Code")]
[SerializableAttribute]
public class Customers : DataSet //继承DataSet,这样可以调用DataSet中的所有方法
{
#region 以下为常量的声明
/// >summary<常量定义客户资料表 Customer 的表名称>/summary<
public const string CRMPSCUSTOMERS_TABLE = "Customer";/// >summary<该常量定义客户编号的栏位名>/summary<
public const string CUSNO_FIELD = "CUSNO";/// >summary<该常量定义客户名称的栏位名>/summary<
public const string CUSTOMERNAME_FIELD = "CustomerName";/// >summary<该常量定义客户地址的栏位名>/summary<
public const string ADDRESS_FIELD = "Address";
#endregion 以下变量、常量、及对象的声明
#region 以下为方法声明
public Customers()
{
BuildDataTables();
}/// >summary<
/// 支持序列化的构造函数/// >param name="info"<对象的序列化信息>/param<
/// >param name="context"<关于被呼叫方法的上下文>/param<
/// >/summary<
private Customers(SerializationInfo info, StreamingContext context) : base(info, context)
{}/// >summary<
/// 创建带结构的表:Customer
/// >/summary<
private void BuildDataTables()
{
//
// 创建CRMPSCustomers的数据表
//DataTable table = new DataTable(CRMPSCUSTOMERS_TABLE);
DataColumnCollection columns = table.Columns;//定义结构
columns.Add(CUSNO_FIELD,typeof(System.String));
columns.Add(CUSTOMERNAME_FIELD,typeof(System.String));
columns.Add(ADDRESS_FIELD,typeof(System.String));this.Tables.Add(table);
Contact contact = new Contact();
this.Merge(contact); //合并
}#endregion 以下为方法声明
}
}
(三).使用
1.
当定义了这样一个类后,在程式中应该这样使用:
ds.Table[Customers.CRMPSCUSTOMERS_TABLE].Row[n][Customers.CUSTOMERNAME_FIELD];
这样就把所有的任务交给本类代码文件了。 当修改数据库时不用修改类似这些语句。 只修改一下结构类相关属性的值即可.
2.
定义此带结构的数据集,还有一种情况用到,就是在有些界面,UI层与数据库交互是单向的,即往数据库添加数据之前
没有读取架构,则DataSet也就没有结构(没有结构不能存储数据),这时这个类就起作用了.
谢谢!
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=494547
- 自定义带结构的可序列化数据集DataSet.
- 自定义带结构的可序列化数据集DataSet.
- 自定义带结构的可序列化数据集DataSet.
- 自定义带结构的可序列化数据集DataSet
- DataSet的序列化
- Hadoop自定义可序列化的类
- 合并两个结构一样的dataset数据集
- 自定义类可序列化
- 可序列化和自定义序列化
- DataSet数据集的用法
- DataSet数据集的遍历
- DataSet数据集的遍历
- 使用二进制格式序列化与反序列化DataSet数据集
- dataset序列化
- 自定义DataSet,并写入数据
- Oracle插入带序列id的数据
- JAVA的可序列化
- Generic Serializer——结构化数据的序列化
- 女人、男人
- ComponentOne之WebChart概述
- ASP.Net中DataGrid翻页后继续保持(当前排序)显示
- 自定义数据库物理表中各列字段的名称
- Asp.Net中Cache操作类
- 自定义带结构的可序列化数据集DataSet.
- 当DataSet中包含主/子表时,Update更新步骤
- Collection -> 由IComparer派生的自定义比较器
- 生成n位不同的验证码
- 用 winmm 播放音乐
- 遍历目录和文件信息
- ADO.Net都有哪些从数据库获取数据的方式
- Control Study -> 当鼠标在图片上移动时,放大图像区域
- Control Study -> 用获取路径方法得到圆形窗体(如将: PictureBox变成圆形)