我在使用ASP.NET和c#做网站的时候,碰到下列问题:
1、数据库中某表的一个字段className是VARCAHR(50)类型,可是我在页面上显示的时候,值的字数为偶数的显示正常,为奇数的老显示少一个汉字,例如:“笔记本”显示出来是“笔记”;“办公用品”显示为正常的“办公用品”,这是怎么回事?
2、数据库中某表的一个字段price类型为money(8)类型,我读出来的时候将其赋给string类型的变量,
然后显示在页面上,可是显示出来为像“65.0000”这样的形式,就是后面多了两个0;怎么回事?money类型应该怎么存取?
3、数据库中一个字段img类型为image(16),值显示为<Binary>二进制文件类型,请问这样的数据类型是怎么存取的?也就是程序中应该用什么类型的变量进行替换?我现在用的数据库是别人的,我是初学者,对这几个类型不太清楚,请大虾们指点一二,在线等,谢了!

解决方案 »

  1.   

    把VARCAHR改成NVarchar,后者是Unicoe编码的,不会出现中文少字。
      

  2.   

    1.奇怪
    2.String.Format("0:c",Double.Parse(price))
      

  3.   

    1、leisang,我把VARCAHR改成NVarchar,问题照旧;
    2、stdotleo,String.Format("0:c",Double.Parse(price)),能不能详细点?举个例子,如果price值为“3.6”,应该怎么显示?
    3、stdotleo,能不能说的详细点?我是初学者,谢了。
      

  4.   

    你可以查查有正字符的格式化问题,在MSDN中有的.
      

  5.   

    1、leisang,我把VARCAHR改成NVarchar,问题照旧;你只是改了数据库,你要查查插入的代码
    如果是存储过程,检查传入的参数类型是否也为nvarchar
    如果是code里面直接用insert,注意values中对应的值前加N
      

  6.   

    我一直用varchar没出现过这种问题,最大时用的varcahr(2000)都没出现这种问题?你这问题有点怪异!
      

  7.   

    他好像就是将奇数个汉字显示成少一个汉字+?的形式:如将“笔记本”显示成“笔记?”,我是用URL传递这个参数的,在赋值的时候没有出错,可是将这个参数取出来后就变成这个样子了,怪了,有谁遇见过这样的问题?