select... where 后面如何传入变量
void CUsers::GetData(CString cUserName)
{
_bstr_t vSQL;
vSQL="SELECT * FROM Users WHERE UserName=cUserName";
m_pRecordset.CreateInstance( __uuidof(Recordset));
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfaceP(),adOpenDynamic,adLockOptimistic,
adCmdText);
}
我用ADO访问数据库,在CUsers::GetData 函数中我想用形参 cUserName 作为SQL 查询的条件,在运行的时候 出现
"列名'cUserName'无效" 的错误,请问如何改正????????本人刚学VC不久,还请多多指教。
问题点数:20、回复次数:3Top
1 楼junguo(junguo)回复于 2006-03-07 21:22:18 得分 20
vSQL="SELECT * FROM Users WHERE UserName= " + cUserName;
你的cUserName是传进来的参数.Top
2 楼qingfengxiaoxia(轻风小侠)回复于 2006-03-07 21:49:25 得分 0
谢谢楼上的,我式拉参数能传进来拉,但是又出现新的问题啦!
我传入SA 时即将 cUserName 赋值为SA 时出现 "列名'SA'无效" 的错误.
我将vSQL改为如下就可以拉
vSQL="SELECT * FROM Users WHERE UserName='SA'";
请问是不是因为传参数时没有将单引号传入呀?
那末怎末将单引号传入呀? 怎末解决?
谢谢!
Top
3 楼qingfengxiaoxia(轻风小侠)回复于 2006-03-07 22:00:58 得分 0
偶,我好笨呀!终于解决啦!
vSQL="SELECT * FROM Users WHERE UserName='"+cUserName+"'";
谢谢junguo(junguo) 拉Top




