急!!!!! 做vc++ 设计 想用access 遇到大问题 怎么传参?在线等待。。

来源:百度知道 编辑:UC知道 时间:2024/06/08 04:22:57
1:
m_pRecordset->Open("SELECT * FROM userinform where username='"+username+"'and password='"+password+"'", m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);

想像java一样写,可是就是不对(这里的"username"和"password"是键盘输入的string类型) 求正确写法。

2:

try{
m_pRecordset->MoveFirst();
while(m_pRecordset->adoEOF==VARIANT_FALSE)
{
m_pRecordset->Fields->GetItem
(_variant_t("name"))->Value="asd";
m_pRecordset->Update();
m_pRecordset->MoveNext();
}
}
catch(_com_error *e) //捕获异常
{
cout<<e->ErrorMessage()<<endl; //如有错误 ,将错误输出
}

这是在一段已经成功运行的程序中截取的一段;;;其中 数据库中 name 成功改成 asd; 现在想将从键盘取得值的 string changename 代替 asd 请教下方法

因为在做课程设计 很急 望各位大哥 简洁明了,一语中地;感激涕零 ;无语凝噎
一楼的大哥 谢谢了 但是本人有点苯弄不好额
D:&#

第1个问题。
CString sql;
sql.Format("SELECT * FROM userinform where username='%s' and password='%s'",username,password);

m_pRecordset->Open((_bstr_t)sql,m_pConnection.GetInterfacePtr(),\
adOpenDynamic,adLockOptimistic,adCmdText);

第2个问题。
如果(_variant_t("name"))->Value="asd";可以。

那么(_variant_t("name"))->Value=changename;不可以吗?

不行的话,CString ch;
ch.Format("%s",changename);
(_variant_t("name"))->Value=ch;

试下,不太确定。

1.简单
CString sql = "SELECT * FROM userinform where username=";
sql += username;
sql += "and password=";
sql += password;
m_pRecordset->Open(sql,m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
其实你的方法改改也能用,你先用这个吧,我也懒得找错了
2
将CString 转换为LPCTSTR试试
LPCTSTR ch = (LPCTSTR)changename;