日期:2014-05-19  浏览次数:20883 次

架构小问题,高手进!谢谢!
今天看到一个程序的大体框架,有一些地方不太清楚.
大体是这样的,比如我们要调用一个方法的时候,一般我们赋直会这样写(简单的小程序)cmd.Parameters.Add( "@total ",SqlDbType.VarChar).Value=total;
但今天发现的这个框架却是这样的,他先建了一个继承于daraset的实体类,比如UserData类public   class   UserData   :   DataSet,然后他在对数据库操作的时候用了下UserData   userData   =   new   UserData();这个类里面大体是这样的内容
DataTable   table   =   new   DataTable(USER_TABLE);
DataColumnCollection   columns   =   table.Columns;

DataColumn   Column   =   columns.Add(PKID_FIELD,   typeof(System.Int32));

Column.AllowDBNull   =   false;
Column.AutoIncrement   =   true;

columns.Add(USERNAME_FIELD,   typeof(System.String));
columns.Add(PASSWORD_FIELD,   typeof(System.String));
columns.Add(NICKNAME_FIELD,   typeof(System.String));
this.Tables.Add(table);


最后赋直先把数值给这个实体,最后通过实体再赋给参数,请问这样有什么好处吗?是通用的写法吗?

------解决方案--------------------
这样写比较好,好处是高度内聚,低耦合.从程序设计的角度来看,类直接关联它的责任.
------解决方案--------------------
参见Duwamish
------解决方案--------------------
是实现数据持久化的一种途径,借助DataSet类的特性,存储数据对象并映射DB,实现对数据库基础操作的预处理,以更好的为业务逻辑层提供完整的数据对象。
------解决方案--------------------
这个要看具体情况,而你这里提到的DataSet类的继承类其实是很特殊的。
也就是说是类型化的DataSet,支持强类型.而普通的DataSet是非类型化的。
具体的例子参考:
http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx
------解决方案--------------------
学习下