我使用的数据库是sqlserver,其中的表为STUDENTS,它有两个字段StuYear和ComYear是datetime类型,开发环境是vc++,有一个对话框类CStuDLG,其中的两个DateTimeCtrl控件分别对应两个ctime类型的变量m_StuYear和m_ComYear,这也与表中的属性对应。
我写了一条sql插入语句:
CStuDLG myStuDlg;
cstring mySql;mySql="insert into STUDENTS values('"+myStuDlg.m_StuID+"',"+myStuDlg.m_StuYear+","+myStuDlg.m_ComYear+")";
m_database.ExecuteSQL(mySql);其中m_StuID是cstring类型,m_StuYear和m_ComYear是ctime类型
这样会报错error C2679: binary '+' : no operator defined which takes a right-hand operand of type 'class CTime' (or there is no acceptable conversion)
我的insert语句应该怎么写啊?

解决方案 »

  1.   

    你不能用别的方法吗?必须是sql语句?
      

  2.   

    mySql="insert into STUDENTS values('"+myStuDlg.m_StuID+"',#"+myStuDlg.m_StuYear+"#,#"+myStuDlg.m_ComYear+"#)";try this
      

  3.   

    将 CTime 转换在 CString  在 SQL SERVER 中,系统不区分时间类型 与 字符串的插入语句 m_StuYear和m_ComYear
    CString sStuYear,sComYear;sStuYear=m_StuYear.Format("%Y-%m-%d");
    sComYear=m_ComYear.Format("%Y-%m-%d");
    mySql="insert into STUDENTS values('"+sStuYear+"','"+sComYear+"');
    m_database.ExecuteSQL(mySql);
      

  4.   

    呵呵,谢谢各位了,问题解决了,用记录集crecordset也可以,不过我想试一下cdatabase,用insert比记录集一个字段一个字段的插入方便。用#也不可以,+重载会出问题,还是只有转换成cstring类型。注意接分了!