1建立一个DataSetHelper类(DataSetHelper.cs)
public
class
DataSetHelper
...
{
public DataSet ds;
public DataSetHelper(ref DataSet DataSet)
...{
ds = DataSet;
}
public DataSetHelper()
...{
ds = null;
}
private bool ColumnEqual(object A, object B)
...{
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
}
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.Add(dt);
return dt;
}
}
DataSet ds;
DataSetHelper dsHelper;
ds
=
new
DataSet();
dsHelper
=
new
DataSetHelper(
ref
ds);
//
Create source table
DataTable dt
=
new
DataTable(
"
Orders
"
);
dt.Columns.Add(
"
EmployeeID
"
, Type.GetType(
"
System.String
"
));
dt.Columns.Add(
"
OrderID
"
, Type.GetType(
"
System.Int32
"
));
dt.Columns.Add(
"
Amount
"
, Type.GetType(
"
System.Decimal
"
));

dt.Rows.Add(
new
object
[]
...
{ "Sam", 5, 25.00 }
);
dt.Rows.Add(
new
object
[]
...
{ "Tom", 7, 50.00 }
);
dt.Rows.Add(
new
object
[]
...
{ "Sue", 9, 11.00 }
);
dt.Rows.Add(
new
Object[]
...
{ "Tom", 12, 7.00 }
);
dt.Rows.Add(
new
Object[]
...
{ "Sam", 14, 512.00 }
);
dt.Rows.Add(
new
Object[]
...
{ "Sue", 15, 17.00 }
);
dt.Rows.Add(
new
Object[]
...
{ "Sue", 22, 2.50 }
);
dt.Rows.Add(
new
object
[]
...
{ "Tom", 24, 3.00 }
);
dt.Rows.Add(
new
object
[]
...
{ "Tom", 33, 78.75 }
);
ds.Tables.Add(dt);
DataTable td
=
dsHelper.SelectDistinct(
"
DistinctEmployees
"
, ds.Tables[
"
Orders
"
],
"
EmployeeID
"
);
this
.GridView1.DataSource
=
td;
this
.GridView1.DataBind();
原文名:HOW TO: Implement a DataSet SELECT DISTINCT Helper Class in Visual C# .NET
实现DataSet SELECT DISTINCT
本文介绍了一个用C#实现的DataSetHelper类,该类提供了一个SelectDistinct方法,用于从DataTable中选择唯一记录。通过实例演示了如何创建源DataTable并使用SelectDistinct方法获取不重复的数据。
776

被折叠的 条评论
为什么被折叠?



