dr[2]的数据是以EXCEL做为数据源。读到DataSet 里的。
以下是vs IDE即时窗口的数据
////////////////////////////////////////////////////
dr[2]
"0880A"
dr[2].ToString().Length
6
dr[2].ToString().Trim()
"0880A"
dr[2].ToString().Trim().Length
6
/////////////////////////////////////////////////////明明是5个字符。length却显示是6个。而实际上却实是6个
我把上面的"0880A"复制到sql 设计查询窗口就能看出来前面多了一个空格" 0880A"很是奇怪,,,,,,我把这数据插到数据库里用substring,和replace,ltrim, 都无法替换掉这个空格。在数据库(len),或vs2008(.length)取完的值都是6
谁能告诉我这是为什么。

解决方案 »

  1.   

    在excel 原文件看看数据
    怎么导入到,sql swerver中直接读取是否一样
      

  2.   

    Replac或正则去掉中文空格:
    dr[2]=dr[2].ToString().Replace("中文空格", "");
      

  3.   

    dr[2].ToString().Replace(" ","");
      

  4.   

    在数据库中,ascii('0880A') 看看他们的编码到底是多少?是不是空格的ascii
      

  5.   

    奇怪我用IE看这贴子" 0880A" 我用遨游看就是"0880A"最上在的"0880A"就是隐藏了那个空格的数据。ascii(字段名) 值是28  看来都是隐藏了一个ascii码值是28的字符。
      

  6.   

    len(Replace(字段名,char(28),''))
    这样就是5了。
    感谢。chen8410