C# 数据表中的不同记录
我想根据一些字段得到不同的记录。我使用以下方法:C# 数据表中的不同记录,c#,asp.net,datatable,dataset,C#,Asp.net,Datatable,Dataset,我想根据一些字段得到不同的记录。我使用以下方法: string[] TobeDistinct = { "PKID" }; DataTable dtDistinct = GetDistinctRecords(ds.Tables[0], TobeDistinct); DataSet ds2 = new System.Data.DataSet(); ds2.Tables.Add(dtDistinct); public static DataTable GetDistinctRecords(DataT
string[] TobeDistinct = { "PKID" };
DataTable dtDistinct = GetDistinctRecords(ds.Tables[0], TobeDistinct);
DataSet ds2 = new System.Data.DataSet();
ds2.Tables.Add(dtDistinct);
public static DataTable GetDistinctRecords(DataTable dt, string[] Columns)
{
DataTable dtUniqRecords = new DataTable();
dtUniqRecords = dt.DefaultView.ToTable(true, Columns);
return dtUniqRecords;
}
这给了我不同的记录,但只有两个记录。只有两个不同的PKID将出现。例如,我有多个PKID为10,12,14,16的记录,但结果是有两行PKID为10和12。还有两行没有,但应该有。我需要做什么
我跟随这篇文章:
您可以像下面这样使用
DataView view = new DataView(table);
DataTable distinctValues = view.ToTable(true, "Column1", "Column2" ...);
更多细节你能试试这个吗
var myResult = dt.AsEnumerable().Select(c => (DataRow)c["MyColumn"]).Distinct().ToList();
这根本不起作用!结果是相同的两行。先生,我遗漏了什么?在选择数据库中的记录时,中间会有一些前导或尾随空格。这可能是因为中间有空格。实际上我在pkid中没有空字段记录。无法重现您的问题。您确定要将正确的表传递给GetDistincRecords吗?可能是