【发布时间】:2017-06-06 06:54:42
【问题描述】:
目前当记录为零时,我收到错误 来源 不能包含任何数据行来管理我已经检查过 count>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();
}
【问题讨论】:
-
不清楚您希望检查做什么 - 如果没有行,那么
dt.AsEnumerable().Take(100)将返回与dt.AsEnumerable()相同的序列。我们不知道您在哪里遇到错误并没有帮助。如果它在后面的一段代码中需要非空的DataTable,那么你真的需要更仔细地考虑当没有任何行时你想要发生的事情。跨度> -
在其他部分我得到了错误。
-
@Zbidi 我在其他部分出现错误
-
对,
CopyToDataTable在没有行时记录为失败。因此,在这种情况下,您可能需要找到一种不同的方法来创建DataTable- 也许只使用dt1 = dt;? -
好的,我已经使用了 dt.clone 并且它正在工作!感谢@JonSkeet 的帮助