首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从DataRow []集合中选择DataRow

从DataRow []集合中选择DataRow
EN

Stack Overflow用户
提问于 2013-07-10 18:05:37
回答 3查看 53.6K关注 0票数 9

我的代码:

代码语言:javascript
复制
DataRow[] row = ByTotalTemplate.Select("TEMPLATE_ID=" + DisTemplateID);

一行包含TEMPLATE_IDMIN_AMOUNTMAX_AMOUNTDISCOUNT

现在,我想选择一个给定数量介于MIN_AMOUNTMAX_AMOUNT之间的行

我试着这样做:

代码语言:javascript
复制
DataRow amountRow = row.Select("MIN_AMOUNT<" + quantity + " AND MAX_AMOUNT>" + quantity);

但这并不管用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-10 18:24:05

我不会纠结于表达式语法,而是使用Linq:

代码语言:javascript
复制
IEnumerable<DataRow> rows = ByTotalTemplate.AsEnumerable()
           .Where(r => r.Field<int>("TEMPLATE_ID") == DisTemplateID
                    && r.Field<int>("MIN_AMOUNT") < quantity
                    && r.Field<int>("MAX_AMOUNT") > quantity);

如果您想要一个包含过滤结果的新DataTable:

代码语言:javascript
复制
DataTable table = rows.CopyToDataTable();

请注意,如果没有行,CopyToDataTable将抛出异常,因为它必须从行派生列。所以你必须在之前检查一下。您可以使用:

代码语言:javascript
复制
DataTable table = ByTotalTemplate.Clone();
if(rows.Any())
    table = rows.CopyToDataTable();

如果需要数组,请执行以下操作:

代码语言:javascript
复制
DataRow[] rowArray = rows.ToArray();

如果您只想要第一行:

代码语言:javascript
复制
DataRow row = rows.FirstOrDefault(); // can be null if there is no matching row

顺便说一句,您的问题是在DataRow[]上使用DataTable.Select

票数 12
EN

Stack Overflow用户

发布于 2013-07-10 18:06:37

如果要使用Select()方法,则必须从DataTable中重新选择行

代码语言:javascript
复制
DataRow[] rowsBetween = ByTotalTemplate.Select("TEMPLATE_ID = " + DisTemplateID + " AND MIN_AMOUNT < " + qunatity + " AND MAX_AMOUNT > " + qunatity);
票数 4
EN

Stack Overflow用户

发布于 2013-07-10 18:15:52

尝尝这个

代码语言:javascript
复制
        DataRow[] row = ByTotalTemplate.Select("TEMPLATE_ID=" + DisTemplateID);
        //
        //some use of **row** here 
        //than after select record from **row**
        DataRow[] amountRow = row.CopyToDataTable().Select("MIN_AMOUNT < " + qunatity + " AND MAX_AMOUNT > " + qunatity);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17567830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档