c# - 源不包含数据行

标签 c# linq datatable dataset

DataTable dt = ds.Tables[4].AsEnumerable()
    .Where(x => ((DateTime)x["EndDate"]).Date >= DateTime.Now.Date)
    .CopyToDataTable();

ds.Tables[4] 有行但抛出异常

"The source contains no DataRows."

知道如何处理或摆脱这个异常吗?

最佳答案

ds.Tables[4] 可能会,但您的 linq 查询的结果可能不会,这很可能是抛出异常的地方。拆分您的方法链接以使用临时参数,这样您就可以确定错误发生的位置。它还会帮助您在调用 CopyToDataTable() 之前检查现有行并避免上述异常。

有点像

DataTable dt = null;
var rows = ds.Tables[4].AsEnumerable()
    .Where(x => ((DateTime)x["EndDate"]).Date >= DateTime.Now.Date);

if (rows.Any())
    dt = rows.CopyToDataTable();

另一种选择是使用 ImportRow DataTable

函数
DataTable dt = ds.Tables[4].Clone();
var rows = ds.Tables[4].AsEnumerable()
    .Where(x => ((DateTime)x["EndDate"]).Date >= DateTime.Now.Date);

foreach (var row in rows)
    dt.ImportRow(row);

关于c# - 源不包含数据行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28324740/

相关文章:

javascript - 使用 jQuery 和 DataTable 进行表行切换()

javascript - 如何从复选框中设置列以过滤数据表 jQuery

c# - 我可以同时在 Azure 存储中创建和保存文件吗?

c# - C# 中的可查询性和延迟加载是否模糊了数据访问与业务逻辑的界限?

c# - 在 Windows Phone 8.1 XAML 中获取 Windows Phone 版本和设备名称

c# - 非空对象上的 EF4 linq NullReferenceException

linq - 如何在LINQ-to-Entities 3.5中进行 “where in values”

javascript - 为什么 JQuery 单击功能在 dataTable 的后续页面中不起作用?

c# - 当目标已经实现一个抽象类时实现抽象类

c# - 在哪里复制 gsdll32.dll 以使 PDF 到图像转换器在我的 WPF 应用程序中工作?