将VARCHAR值""转换为数据类型为"int"的列时发生语法错误!的解决方法

将VARCHAR值""转换为数据类型为"int"的列时发生语法错误.

从一个Edit的编辑框中获取m_name,m_id,m_old.三个变量.m_id,m_old是int的.m_name是CString.

代码如下:

void CFlexGridDlg::OnAdd()
{
    // TODO: Add your control notification handler code here
    ADOConn m_ado;

CString  m_mane, m_id,m_old;


UpdateData(true);


GetDlgItem(IDC_EDIT_ID)->GetWindowText(m_id);//以下三行没有也行.从UpdateData(true)就可以获得三个变量
GetDlgItem(IDC_EDIT_NAME)->GetWindowText(m_name);//
GetDlgItem(IDC_EDIT_OLD)->GetWindowText(m_old);//

//int atoi( const char *string );
//int nid=atoi(m_id);
//int nold=atoi(m_old);

    _bstr_t vSql="insert into users(id,username,old) values('"+m_id+"','"+m_name+"','"+m_old+"')";
//_bstr_t vSql="insert into users(id,username,old) values('"  +nid+ "','"+m_name+"','" + nold+ "')";

    m_ado.OnInitADOConn();

    m_ado.ExecuteSQL(vSql);
    InitGrid();
   
}

可以把m_id,m_old从CString转换为int,结果.运行时老是提示."将VARCHAR值""转换为数据类型为"int"的列时发生语法错误."

后来经朋友提示.把m_id,m_old不转换直接使用.
sql语句写成如下所示就可以了.原来SQL是可以自已把CString转换为int的,我是多虑了.呵呵~~
_bstr_t vSql="insert into users(id,username,old) values('"+m_id+"','"+m_name+"','"+m_old+"')";

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值