向Access中插入数据报“INSERT INTO 语句的语法错误”的解决办法

CString str;
m_comboYHLX2.GetLBText(m_comboYHLX2.GetCurSel(),str);//获取下拉列表中所选择的文本
CString sex;
if(radio==0)
sex.Format("");//当全局变量radio=0时性别为空
if(radio==1)
sex.Format("男");
if(radio==2)
sex.Format("女");
CTime time;
time=CTime::GetCurrentTime();//获取当前系统时间
CString nowtime=time.Format("%Y-%m-%d");//将时间转换成字符串
int id;//定义整型数用于控制编号
try
{
m_AdoConn.OnInitADOConn();//打开数据库连接
CString sql="select*from zhuce where USENAME='"+m_strYHM2+"'";//查询是否有用户名相同的记录
m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql);//获取记录
if(!m_pRs->adoEOF)//判断记录是否为空
{
AfxMessageBox("用户名已存在");//不为空则提示用户名存在
return;
}
else
{
sql.Format("select ID from zhuce");//在注册信息表中查询编号
m_pRs=m_AdoConn.GetRecordSet((_bstr_t)sql);//获取编号记录
if(m_pRs->adoEOF)//判断记录是否为空
id=1001;//如果记录为空则id由1001开始
else
{
m_pRs->MoveLast();
id=atoi((_bstr_t)m_pRs->GetCollect("ID"));//获取最后一条记录编号信息
id+=1; //id由最后一个编号数加1开始
}
sql.Format("insert into [zhuce]([USENAME],[PASSD],[NAME],\
[AGE],[SEX],[NUMBER],[ID],[USETYPE],[IDCARD],[login_date])values('%s','%s','%s',\
%d,'%s',%d,%d,'%s','%s','%s')",m_strYHM2,m_strMIMA2,m_strXM2,\
m_age,sex,m_strDHHM,id,str,m_strCARD,nowtime);



m_AdoConn.ExecuteSQL((_bstr_t)sql);//执行上面的插入语句
m_AdoConn.ExitConn();
AfxMessageBox("注册成功");
CDialog::OnCancel();
CDMT1 dlg;
dlg.DoModal();
}
}
    catch(...)
{
AfxMessageBox("操作失败");
return;

}



解决办法:

sql.Format("insert into [zhuce]([USENAME],[PASSD],[NAME],\
[AGE],[SEX],[NUMBER],[ID],[USETYPE],[IDCARD],[login_date])values('%s','%s','%s',\
%d,'%s',%d,%d,'%s','%s','%s')",m_strYHM2,m_strMIMA2,m_strXM2,\
m_age,sex,m_strDHHM,id,str,m_strCARD,nowtime);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值