问题描述
我需要选择列值为数字的表的行,有什么帮助吗?
I need to select the rows of a table where a column value is numeric, any Help?
我有一个 varchar 列,我需要选择哪些是数字,哪些不是.
I have a varchar column and I need to select the ones that are numbers and the ones that are not.
EDIT 2: Integer.TryParse 不能使用,因为它不能转换为 SQL.
EDIT 2: Integer.TryParse cannot be use because it cannot be translate to SQL.
推荐答案
我不知道 LinqToSQL 中是否有 int.TryParse() 的映射,但是您可以通过执行查询分两步完成,转换为列表,然后使用 LinqToObjects 从列表中选择.
I don't know if there is a mapping for int.TryParse() in LinqToSQL, but you could probably do it in two steps by performing the query, casting to a List, then selecting out of the list with LinqToObjects.
int i; var query = context.Table.ToList(); var intQuery = query.Where( t => int.TryParse( t.Column, out i ) );
你可能想看看 动态 LINQ,也是.这将允许您执行以下操作:
You might want to look at Dynamic LINQ, too. That would allow you to do something like:
var query = context.Table.Where( "IsNumeric(Column)" );
编辑 VS2008 代码示例中提供了动态 LINQ,链接来自 Scott Guthrie 的博客,我已在上面链接.
EDIT Dynamic LINQ is available in the VS2008 Code Samples, linked to from Scott Guthrie's blog, which I've linked above.