4

いくつかのフィールドに基づいて個別のレコードを取得したいと考えています。私は次の方法を使用しています:

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;
}

これにより個別のレコードが得られますが、2 つのレコードしか表示されません。2 つの異なる PKID のみが送信されます。たとえば、PKID 10、12、14、16 の複数のレコードがありますが、結果は PKID 10 と 12 の 2 つの行になります。さらに 2 つの行は存在しませんが、存在するはずです。私は何をする必要がありますか?

私はこの記事に従います: http://www.codeproject.com/Tips/153008/Select-DISTINCT-records-based-on-specified-fields

ここに画像の説明を入力

4

2 に答える 2

13

次のように使用できます

DataView view = new DataView(table);
DataTable distinctValues = view.ToTable(true, "Column1", "Column2" ...);

詳細
データテーブル内の個別の行を選択して配列に格納する方法

于 2013-04-09T09:51:12.070 に答える