VC++程序用ODBC技术连接SQL-Server2005出现“对于造型说明无效的字符”错误
数据库建表:
CREATE TABLE TRAINING_STUDENT
(
STUDENT_ID CHAR(10) NOT NULL,
STUDENT_NAME VARCHAR(10) NULL,
STUDENT_SEX VARCHAR(2) NULL,
STUDENT_AGE CHAR(3) NULL,
STUDENT_NATION VARCHAR(10) NULL,
STUDENT_NATIVE_PLACE VARCHAR(8) NULL,
STUDENT_IDENTITY_CARD_NO CHAR(20) NULL,
STUDENT_MARRIAGE_STATUS VARCHAR(8) NULL,
STUDENT_HEALTH_STATUS VARCHAR(10) NULL,
STUDENT_ATTEND_JOB_TIME DATE NULL,
STUDENT_HOME_ADDRESS VARCHAR(50) NULL,
STUDENT_TELEPHONE_NUMBER CHAR(12) NULL,
STUDENT_EMAIL VARCHAR(20) NULL,
)
下面是将新数据写进数据库的实现代码: CString csSQL = _T("");
int i = 1;
int nFlag = 0;
while (!nFlag)
{
CTrainingStudentSet m_recordset(&m_database);
csSQL.Format(_T("select * from TRAINING_STUDENT where STUDENT_ID = %d"),i);
m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,csSQL);  // 打开数据集
if (m_recordset.GetRecordCount() == 0)
{
csSQL.Format(_T("insert into TRAINING_STUDENT values(%d,\'%s\',\'%s\',%d,\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%d-%d-%d\',\'%s\',\'%s\',\'%s\')"),
         i,
 m_csStudentName,
 m_csSex,
 m_nStudentAge,
 m_csNation,
 m_csNativePlace,
 m_csIdentityCardNo,
 m_csMarriageStatus,
 m_csHealthStatus,
 m_ctAttendJobTime.GetYear(),m_ctAttendJobTime.GetMonth(),m_ctAttendJobTime.GetDay(),
 m_csHomeAddress,
 m_csTelephoneNumber,
 m_csEmailAddress
 );
m_database.ExecuteSQL(csSQL);  // 执行SQL文
m_database.Close(); // 关闭数据库
nFlag = 1;
} i++;
} CDialog::OnOK();
}
    数据库表格可以顺利建立,C++程序也没有显示语法错误,但是在测试执行文件准备输入新数据时,会弹出“对于造型说明无效的字符”对话框,在应用程序上看不到新输入的数据,但去数据库里可以发现刚输入的新数据。这是什么原因?