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 回答
-1

使用以下内容检查行数;

if (ds.Tables.Count > 0 && ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)

但是当行数<=0

dt1 = dt.AsEnumerable().CopyToDataTable(); 

这条线没有意义。你需要获取空行吗?

于 2017-06-06T07:00:26.753 回答