0

現在、レコードがゼロの場合、カウント> 0をチェックしたことを管理するためのデータ行がエラーソースにありませんが、これを解決する方法はまだわかっています。

dynamic dt = ds.Tables(0);
int totalrowCount = dt.Rows.Count;


//dt.Rows.Count 
//dt.Select().Take(100)
// dt.Rows.Cast(Of System.Data.DataRow)().Take(100)
DataTable dt1 = default(DataTable);
if (totalrowCount > 0) {
    dt1 = dt.AsEnumerable().Take(100).CopyToDataTable();
} else {
    dt1 = dt.AsEnumerable().CopyToDataTable();
}
4

2 に答える 2

1

文書化されているようCopyToDataTable()に、行の空のシーケンスで呼び出すことはできません-おそらく、含めるスキーマ情報がないためです。代わりに、元のテーブルが空であることがわかっていて、同じスキーマを持つ新しいテーブルが必要な場合は、それを複製します。したがって、次のようになります。

DataTable dt = ds.Tables(0);
DataTable newTable = dt.Rows.Count > 0
    ? dt.AsEnumerable().Take(100).CopyToDataTable() 
    : dt.Clone();
于 2017-06-06T07:14:41.640 に答える