CSTRING A,B,C,D;
FLOAT E,F;
strQuery = "insert info t2 (a,b,c,d,e,f) vaules ('"+A+"','"+B+"','"+C+"','"+D+"','"+E+"','"+F+"')";
编译后运行程序出错,说nvarchar转换为float出错。
我数据库中a,b,c,d字段数据类型为nvarchar
e,f字段数据类型为float。请问怎么写插入语句。

解决方案 »

  1.   

    "+E+"错了 不能直接加 运算时将前面的nvarchar转成floatstrQuery.format( "insert info t2 (a,b,c,d,e,f) vaules 
    ('%s','%s','%s',%f,%f)",A,B,C,D,E,F);
      

  2.   

    strQuery.format( "insert info t2 (a,b,c,d,e,f) vaules 
    ('%s','%s','%s',%f,%f)",A,B,C,D,E,F);
    这句话不对吧
      

  3.   

    是 into 不是info
    strQuery.format( "insert into t2 (a,b,c,d,e,f) vaules 
    ('%s','%s','%s',%f,%f)",A,B,C,D,E,F);
    运行时假如字符变量值为'c'数字为1.1该句为
    insert into t2 (a,b,c,d,e,f) vaules ('c','c','c',1.1,1.1)
    还有什么问题吗
      

  4.   

    那么这样怎么样啊:
    strQuery.format( "insert into t2 (a,b,c,d,e,f) vaules 
    ('%s','%s','%s',%f,%f)",A,B,C,D,atof(E),atof(F));
      

  5.   

    请看下面的帖子问题,这里我说的不全面
    http://expert.csdn.net/Expert/topic/2598/2598739.xml?temp=.439541
      

  6.   

    strQuery.format( "insert into t2 (a,b,c,d,e,f) vaules 
    ('%s','%s','%s','%s', %f,%f)",A,B,C,D,E,F);
    Must be Right!!!
      

  7.   

    strQuery.format( "insert into t2 (a,b,c,d,e,f) vaules 
    ('%s','%s','%s','%s', %f,%f)",A,B,C,D,E,F);
    格式的时候必须要设置浮点数的长度,要和数据库定义得一样长,不让然后面那么多的0
    如何写到数据库里,
    建议你在数据库设计时全部用字符型,每次插入,
    或取出时转换一下,省事多了。