ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> .NET技术
怎样在Visual C# .NET中实现一个DataSet的不同记录的选取
怎样在Visual C# .NET中实现一个DataSet的不同记录的选取

来自:Microsoft Knowledge Base Article – 326176,地址: http://support.microsoft.com/default.aspx?scid=kb;EN-US;326176



摘要:



这是一篇基础性由浅入深的文章,这篇举例说明了怎样实现并怎样使用一个DataSetHelper类,该类使用简洁代码来创建一个新的使某个DataTable对象指定的某列的的值具有唯一性的DataTable对象。



????? 为了实现这个目的,你可以使用SelectDistinct这个公开方法,也可以使用一个私有的通过比较可能包含NULL值(DBNull.Value)的字段的辅助方法。



?????? DataSetHelper类包含一个DataSet成员变量,你可以随意的指定现有的一个DataSet对象作为这个DataSet成员的变量。如果这个成员变量是一个有效的DataSet,任一一个SelectDistinct方法创建的DataTable对象都能被填充到这个DataSet里。那样,这个方法就请求返回涉及的DataTable对象。



要求:



下列清单列出的是推荐的硬件、软件、网络基础设施和必须的补丁包:



(1)、Microsoft Windows XP, Windows 2000, or Windows NT 4.0 Service Pack 6a



(2)、Microsoft Visual Studio .NET



这篇文章假设你已熟悉下面的主题:



(1)、Visual C# .NET的语法



(2)、ADO.NET基本原理和语法



DataSetHelper 构造类:



(1)、开始Microsoft Visual Studio .NET。



(2)、在文件(File)菜单,点新建(New),和然后点击项目(Project)。



(3)、在新建项目(New Project)对话框, 点击Visual C#项目(Visual C# Projects)下的项目类型(Project Types),然后点击类库(Class Library)下的模板(Templates)。



(4)、在名称栏里填上DataSetHelper。



(5)、用以下代码替换类代码:



public class DataSetHelper



{



???????? public DataSet ds;



???????? public DataSetHelper(ref DataSet DataSet)



???????? {



???????? ??????? ds = DataSet;



???????? }



???????? public DataSetHelper()



???????? {



???????? ??????? ds = null;



???????? }



}



你可以用2次重载的构造函数来创建一个带或不带一个有效的DataSet的实例类。因为类是涉及一个有效的DataSet,那么这个方法返回的DataTable对象这就自动的填充到这个DataSet里。



注: 增加下面代码在代码窗口的顶部:



using System.Data;



?



SelectDistinct 方法:



这个部分包含代码为公开的SelectDistinct方法和私有的ColumnEqual辅助方法。



(1)、在类定义里增加下面的私有方法,该方法同样被用在其他的DataSetHelper 文章里,它被用做来比较字段的值(包括NULL值) 。



private bool ColumnEqual(object A, object B)



{



???????? ?? // Compares two values to see if they are equal. Also compares DBNULL.Value.



??????? // Note: If your DataTable contains object fields, then you must extend this



??????? // function to handle them in a meaningful way if you intend to group on them.



???????????????????????????



??????? if ( A == DBNull.Value && B == DBNull.Value ) //? both are DBNull.Value



??????????? return true;



??????? if ( A == DBNull.Value || B == DBNull.Value ) //? only one is DBNull.Value



??????????? return false;



??????? return ( A.Equals(B) );? // value type standard comparison



}



(2)、在类定义里增加下面的公开方法。这个方法复制你选定的字段的互异值到一个新的DataTable里。如果这个字段包含NULL值,在目标列里的一条记录里也会包含NULL值。



public DataTable SelectDistinct(string TableName, DataTable SourceTable, string FieldName)



{??????



??????? DataTable dt = new DataTable(TableName);



??????? dt.Columns.Add(FieldName, SourceTable.Columns[FieldName].DataType);



???????????????????????????



??????? object LastValue = null;



??????? foreach (DataRow dr in SourceTable.Select("", FieldName))



??????? {



??????????? if (? LastValue == null || !(ColumnEqual(LastValue, dr[FieldName])) )



??????????? {



??????????????? LastValue = dr[FieldName];



??????????????? dt.Rows.Add(new object[]{LastValue});



??????????? }



??????? }



??????? if (ds != null)



??????????? ds.Tables.
 
 
本站关键词:
|东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|东莞建站服务|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广||东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|东莞建站服务|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广||东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|东莞建站服务|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广||东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|东莞建站服务|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广||东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|东莞建站服务|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广||东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|东莞建站服务|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广||东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|东莞建站服务|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广||东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|东莞建站服务|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广||东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|东莞建站服务|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广||东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|东莞建站服务|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广||东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|东莞建站服务|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广||东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|东莞建站服务|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广||东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|东莞建站服务|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广||东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|东莞建站服务|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有