刚才发帖,但问题没有解决,再发一次。 
CString str,str1,str2,str3; 
str1="TexAverageLum"; 
str2.Format("%f",minTexAverageLum);//minTexAverageLum为folat型变量,已赋值。 
str3.Format("%f",minTexAverageLum+TexAverageLum);//minTexAverageLum、TexAverageLum都为folat型变量,已赋值。 
CADOConn ado; 
ado.OnInitADOConn(); 
_bstr_t vSQL; 
vSQL="SELECT * FROM ManyRuless";//数据库表名 
_RecordsetPtr m_pRecordset; 
m_pRecordset=ado.GetRecordSet(vSQL); 
str.Format("INSERT INTO ManyRuless(FeatureFirst,Min_ValueFeatureFirst,Max_ValueFeatureFirst)VALUES(%s, %s, %s)", str1, str2, str3); 
vSQL= str; 
ado.ExecuteSQL(vSQL); 
ado.ExitConnect();//断开数据库连接 
编译可以通过,运行时出现错误。提示如下:在此上下文不允许使用‘TexAverageLum’。此处只允许使用常量、表达式或变量。不允许使用列名。 
我用的是VS.NET2008,数据库是SQL2000. 

解决方案 »

  1.   

    str1 = "TexAverageLum"; 
    //TexAverageLum是数据库中的一个列名?
      

  2.   

    str.Format("INSERT INTO ManyRuless(FeatureFirst,Min_ValueFeatureFirst,Max_ValueFeatureFirst) VALUES(\"%s\", \"%s\", \"%s\")", str1, str2, str3);
      

  3.   

    TexAverageLum不是数据库中的一个列名。
    str.Format("INSERT INTO ManyRuless(FeatureFirst,Min_ValueFeatureFirst,Max_ValueFeatureFirst) VALUES(\"%s\", \"%s\", \"%s\")", str1, str2, str3);
    也不行,给刚才的错误提示一样。
      

  4.   

    不同的数据库需要的字符串表示略有不同,SQLserver应该需要把字符串添加""也就是sxlengwa所写。
      

  5.   

    str.Format("INSERT INTO ManyRuless(FeatureFirst,Min_ValueFeatureFirst,Max_ValueFeatureFirst) VALUES(\'%s\', \'%s\', \'%s\')", str1, str2, str3);
      

  6.   

    str.Format("INSERT INTO ManyRuless(FeatureFirst,Min_ValueFeatureFirst,Max_ValueFeatureFirst)VALUES('%s', %s, %s)", str1, str2, str3); 
    //第一个%s上加单引号
      

  7.   

    ""改成''应该可以了
    遇到这种问题先把str打印出来看看,必要的话拷贝粘贴到数据库管理工具中试试