void CAddDepartment::OnOK() 
{
CString strSQL;
CString name, department,description;
CRecordset rs(&db);
long code; UpdateData(true);
name = m_strManager;
department = m_strDepartment;
description =  m_strDescription;
rs.Open(CRecordset::forwardOnly,"select * from DEPARTMENT");
code = rs.GetRecordCount();
code += 1.0;

strSQL = "insert into DEPARTMENT(ID,NAME,MANAGE,INTRO)\
values('"
+ code+ "','"
+ department +"','"   ******
+ name +"','"          *****
+ description + "')";    ******
db.ExecuteSQL(strSQL);
MessageBox("新部门增加成功!");
CDialog::OnOK();
}
带*号处为提示出错的地方。
m_strManager;
m_strDepartment;
m_strDescription;
三个变量均为对话框中EDIT控件对应的CString 类型变量。请问出错提示是什么意思,怎么解决,谢谢!

解决方案 »

  1.   

    strSQL = "insert into DEPARTMENT(ID,NAME,MANAGE,INTRO) values('"
    + code+ "','"
    + department +"','"   ******
    + name +"','"          *****
    + description + "')";    ******
    写在一行试验试验
      

  2.   

    两个“”包含的字符串无法进行运算。
    需要把第一个定义为CString类型,或者使用strcat函数来做
      

  3.   

    试试这个
    strSQL.Format("insert into DEPARTMENT(ID,NAME,MANAGE,INTRO) values('%d', '%s', '%s','%s\')", code, name, department,description);
      

  4.   

    用Format多好啊
    str.Format("insert into table fd1,fd2,fd3 values('%s','%s','%s)",value1,value2,value3);
      

  5.   

    按 happy__888([顾问团]寻开心) 的方法试了,搞定!
    结贴!!
      

  6.   

    不妨如此写:
    char buffer[] = "insert ....";
    strSQL = buffer + (_bstr_t)"'"+(_bstr_t)'abc';
    如上即可
      

  7.   

    谢谢啦!和你同样的错误,现在已经改正 happy088