将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+"')";
从一个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+"')";