在读取Excel时,用OLEDB读取,获得一个数字字段,该字段是负数,在Excel里设置的是数字,格式是(12121.1211);读取出来应该为“-12121.1211”,结果却是“(12121.1211)”,无法转换为数字。奇怪的是同一个Excel中其它列也有这种负数的设置,却能正确地读取出负数来,而不是括号的字符串,达人指点一下。

解决方案 »

  1.   

    检查Excel中的那个值,看是否正常。你也可以程序处理当出现()时把()处理掉。因为execl总会莫名其妙的出一些问题。
      

  2.   

    格式化下 select 语句中的 字段值
      

  3.   

    以字符串的形式读取excel中的数据比较好,读取后将数据转换成相应类型即可。稍微麻烦一点,但是能够避免一些因用户格式输入不规范引起的错误。
      

  4.   

    excel 有时负数是用()表示的,你设置单元格格式
      

  5.   

    看清楚我的问题,excel中格式虽然可以设置为()形式,但是读数还是一个负数的。
      

  6.   

    EXCEL设置单元格式为文本,不要用()来表示负数,这样就没问题了吧~!还是你就是要用()来表示负数呢?
      

  7.   

    这个问题我遇到过,是因为excel是数字列
    楼主可以这样做:把那列设置为文本列就可以 了
      

  8.   

    如果是这样,那就不好分析了,excel有时是会出现莫名其妙的问题。我曾经碰到过一个读取错误,excel数据源是浮点数,如果连接时以文本形式读取,几百个数据中有一个特定的数读出来就会变成NULL;如果去掉这个文本形式读取连接参数,读出来就是正确的。查询SQL语句中是带ORDER BY条件的。我比较了下,如果把查询SQL语句中的ORDER BY条件去掉,那么以文本形式读取就是正确的。很难解释为什么。