正在筛选DataTable,无法处理空结果



我正在使用linqdatatable筛选数据,它运行良好,只是当搜索条件不匹配时,不会处理结果表为空。以下是我的代码:

var table = dtTokensInfo.AsEnumerable()
                  .Where(r => r.Field<string>("tokenName").Contains(txtTokenName.Text))
                  .CopyToDataTable();

我希望表包含从dtTokensInfor中筛选出的值,但当搜索条件和不匹配时无法处理它

您应该将对CopyToDataTable的调用与Linq表达式的结果分离

DataTable table = null;
var temp = dtTokensInfo.AsEnumerable()
              .Where(r => r.Field<string>("tokenName")
              .Contains(txtTokenName.Text));
if(temp != null)
   table = temp.CopyToDataTable();

如果您查看有关CopyToDataTable IEnumerable扩展的MSDN页面,您会注意到在抛出的可能异常之间

ArgumentNullException:源IEnumerable(Of T(序列为无法创建任何内容和新表。

最新更新