CString name;
float fPV;
CString strRTTime;
long iTagId;
数据库中:char name,bigint tagindex,float PV,datetime datatime;
strCmdText="INSERT INTO historydb.dbo.hisanalog (name,tagindex,pv,datatime) VALUES ( '"+strTagName+"',"+iTagId+","+fPV+",'"+strRTTime+"' )";一条简单的插入语句报错:error C2666: '+' : 4 overloads have similar conversions
不知道为什么错,单引号,双引号还有加号各是什么意思?正确的写法应该是什么?请各位大侠帮帮忙!

解决方案 »

  1.   

    strCmdText="INSERT INTO historydb.dbo.hisanalog ([name],tagindex,pv,[datatime]) VALUES ( '"+strTagName+"',"+iTagId+","+fPV+",'"+strRTTime+"' )"; 
    --name 和 datetime是SQL保留字要加[].试一下!
      

  2.   

    error C2666: '+' : 4 overloads have similar conversions 转换异常
      

  3.   

    虽然用下面这条语句也可以:
    strCmdText.Format("INSERT INTO historydb.dbo.hisanalog (name,tagindex,pv,datatime) VALUES ( %s,%ld,%f,%s )",strTagName,iTagId,fPV,strRTTime);
    但我还是想知道上面那种方法应该怎么写,还望各位高手不吝赐教!
      

  4.   

    至少得:
    "...."+fPV.ToString("#.00")
      

  5.   

    strCmdText.Format("INSERT INTO historydb.dbo.hisanalog (name,tagindex,pv,datatime) VALUES ( %s,%ld,%f,%s )",strTagName,iTagId,fPV,strRTTime);这个语句正常?!
      

  6.   

    把Values 中的 tagindex,pv 这两个字段的 引号去掉