完全无法理解为何会显示不同
根据我浅薄的知识,我只能觉得是不是数据库字段不是varchar而是char所以才会多出字

解决方案 »

  1.   

    可能是datagride在cellDrawn的处理上不一样,后生的Listview则没这问题
    改成nchar或者nvarchar吧
      

  2.   

    C#在执行字符数组和字符串之间转换的时候,跟C++不同
    C++字符串以\0作为结尾,\0之后的字符直接舍弃
    而C#会把\0和\0之后的部分都当字符串转换很明显,你数据库中的数据是通过C++写进去的,而且是以数组的形式而不是字符串的形式写进去,是固定长度的
    所以\0之后的部分也写进去了
    而C#处理的时候,\0当做空字符处理,而不是字符串结尾,所以\0之后的内容也会显示出来
      

  3.   

    至于Listview,应该内部做了处理,不是直接ToString拉倒
      

  4.   

    那应该怎么处理呢?让DataGridView不显示\0后面的数,只显示正确的数?