Tôi chỉ tình cờ tìm thấy điều này: http://support.microsoft.com/default.aspx?scid=kb;en-us;326176#1
Trong khi tìm kiếm một cái gì đó tương tự, chỉ, đặc biệt cho .net 2.0
Im giả sử OP đang tìm kiếm riêng biệt trong khi sử dụng DataTable .Lựa chọn(). (Chọn() không hỗ trợ riêng biệt)
Vì vậy, đây là mã từ liên kết ở trên:
class DataTableHelper
{
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});
}
}
return dt;
}
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
}
}
Viết mã mẫu, từ nhận xét bạn đã thực hiện bên dưới, có vẻ như câu trả lời xoay quanh chi tiết cụ thể của truy vấn mà bạn đang làm việc. – MatthewMartin