当前位置:  开发笔记 > 编程语言 > 正文

如何知道Linq To SQL中的字段是否为数字

如何解决《如何知道LinqToSQL中的字段是否为数字》经验,为你挑选了3个好方法。

我需要选择列值为数字的表格行,任何帮助?

编辑:我有一个varchar列,我需要选择那些数字和那些不是.

编辑2:Integer.TryParse无法使用,因为它无法转换为SQL.



1> Timothy Khou..:

在XML编辑器中打开DBML(LINQ-to-SQL)文件,直到文件末尾并将其粘贴到""节点之前:


    
    

现在,您可以使用名为"ISNUMERIC" 的已在SQL中的函数.这是如何做:

var blah = myDataContext.Accounts.Where(account=>
    myDataContext.ISNUMERIC(account.ID) == true);

你去:)

您还可以找到这些函数来复制:


  


  


我更喜欢@Josh的简单方法

2> tvanfosson..:

我不知道LinqToSQL中是否存在int.TryParse()的映射,但您可以通过执行查询,转换为List,然后使用LinqToObjects从列表中选择,分两步完成.

int i;
var query = context.Table.ToList();
var intQuery = query.Where( t => int.TryParse( t.Column, out i ) );

您可能也想查看Dynamic LINQ.这将允许你做以下事情:

var query = context.Table.Where( "IsNumeric(Column)" );

编辑动态LINQ可以在VS2008代码示例中找到,链接到Scott Guthrie的博客,我在上面已经链接过了.



3> Josh..:

SqlFunctions.IsNumeric

http://msdn.microsoft.com/en-us/library/system.data.objects.sqlclient.sqlfunctions.isnumeric.aspx

例如:

    private int GetLastGoodNumber(string PartNum)
    {
        return (from row in Db.SerialNo
                where
                   row.PartNum == PartNum
                let nullable = System.Data.Objects.SqlClient.SqlFunctions.IsNumeric(row.SerialNumber)
                where nullable != null
                select nullable.Value).Max();
    }

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有