我正在使用linq
从datatable
筛选数据,它运行良好,只是当搜索条件不匹配时,不会处理结果表为空。以下是我的代码:
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(序列为无法创建任何内容和新表。