XuzhongZhang
2015-01-08 02:34
采纳率: 66.7%
浏览 4.1k
已采纳

C#检索access数据库时如何将文本字段转换成数字

检索的一个字段时文本类型,里面的内容包括:1000,还有一些具体的数字20,30,
50,如何在检索条件时,将文本类型装换成数字类型比较,检索出20和30呢?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • WorldMobile 2015-01-09 00:28
    已采纳

    可以参考以下例子,table1.a为字符串,table2.b为数值

    select a from Table1 where val(a) in (select b from Table2)
    or
    select a from Table1 where a in (select str(b) from Table2)
    or
    select a from Table1 where a in (select cstr(b) from Table2)
    or
    select a from Table1 where a in (select format(b,'#####') from Table2)

    已采纳该答案
    打赏 评论
  • 你先检索数据库出来,然后C#写个函数正则提取你要的内容不行?

    直接sql转换access不行吧

    打赏 评论
  • oyljerry 2015-01-08 02:48

    你sql取出来数据后,自己再进行类型转换

    打赏 评论
  • lx624909677 2015-01-08 03:11

    可以先读出来,然后用字符串接收,接收完后,再用你使用的编程语言来转,比如toInt()之类的函数

    打赏 评论
  • TedWIthAHammer 2015-01-08 05:15

    用数据库自带的字符转换函数,或者读取数据到后台用Convert.Toint32函数转换,具体要看你这个字段的存储逻辑实现怎样提取到你要的数据,如果使用逗号分隔的可以用split函数返回一个string[]字符数组处理,问题描述的不是很清晰

    打赏 评论
  • save4me 2015-01-08 05:22

    使用MS Access的VAL函数,SELECT VAL(文本类型字段) FROM 表
    VAL函数将能转成数字的字段值转成数字,否者为0
    或者通过IIF函数,你可以自定义非数字字段值装成什么,IIF(IsNumeric(文本类型字段), Clng(文本类型字段), 0)

    打赏 评论
  • XuzhongZhang 2015-01-10 02:49

    谢谢大家的指点,以下是access中的字段和内容,
    检验结果
    16
    20.5
    30
    40
    300
    使用 select * form 表 where val(检验结果) >= '" + num1 + "' and val(检验结果) <= '" + num2 + " '查询语句,num1是30,num2是40
    结果却是以下:
    检验结果
    300
    40
    30
    怎么会出现300呢?

    打赏 评论
  • save4me 2015-01-10 15:06

    你用val把检验结果字段从文本类型转换成数字类型,然后你还用引号把比较的数字,如 '" + num1 + "' ,把数字类型转成文本类型来比较,有你这样折腾的吗?
    把单引号去掉就是你需要的结果了。

    打赏 评论

相关推荐 更多相似问题