有没有办法在DataTable中找到一个值使用方法选择:
items.Select("Number like '%10%'");
但Number类型是Int,这段代码不起作用......
答案 0 :(得分:1)
查看T-SQL CAST and CONVERT函数,它们可能会对您有所帮助。基本上,在您的查询中,使用CAST
或CONVERT
(不确定哪个最适合您)将int更改为可以执行LIKE
的字符串。
答案 1 :(得分:0)
如果你真的想要有这样的行为,那么最好只是在你的表中添加类似字符串的“NumberText”附加计算列,它将存储与列号相同的值。然后,您可以执行表达式:items.Select("NumberText like '%10%'");
答案 2 :(得分:0)
您可以通过以下方式使用linq:
var matchingRows =
from item in items.AsEnumerable()
where item.Field<string>("Number").Contains("10")
select item;
或者如果Number实际上是一个数字:
var matchingRows =
from item in items.AsEnumerable()
where item.Field<double>("Number").ToString().Contains("10")
select item;
答案 3 :(得分:0)
如果记忆服务,你需要通过加倍来逃避单一报价。即:
items.Select("Number like ''%10%''");
答案 4 :(得分:0)
您可以使用DataView过滤DataTable中的值
DataView dv = new DataView(dtSample);
dv.RowFilter = "Number like '%10%'";
答案 5 :(得分:0)
对于将来阅读的人来说,这可能有所帮助:
DataRow[] matchingRows = a.Select("Convert(Age, 'System.String') like '2%' "); // cut and paste from my code
所以在你的代码中它将是:
DataRow[] matchingRows = a.Select("Convert(Number, 'System.String') like '10%' "); // where Number is the name of your column.