Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据表中的不同记录_C#_Asp.net_Datatable_Dataset - Fatal编程技术网

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吗?可能是