请高手帮忙看看vc++连接数据库的一个小程序;不胜感激

来源:百度知道 编辑:UC知道 时间:2024/06/18 14:45:29
#include "iostream"
#include "afx.h"
#include "string"
using namespace std;

#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")
int main()
{
string username="";
string password="";
_ConnectionPtr m_pConnection;
CoInitialize(NULL);
m_pConnection.CreateInstance(__uuidof(Connection));
try
{ m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mydb.mdb","","",adModeUnknown);

}
catch(_com_error e)
{
cout<<"数据库连接失败,确认数据库mydb.mdb是否在当前路径下!"<<endl;
return FALSE;
}

cout<<"请输入你的用户名"<<endl;
cin>>username;
cout<<"请输入你的密码"<<endl;

昨天跟你说的用CString 类型来写sql语句,假设的你在MFC下写的程序。
我看了下你的代码,貌似不是用的MFC。

你这个程序问题出在
#include "iostream"
#include "afx.h"
这2个里好像有重复定义的东西。

那么改一下吧。

第1:
包含头文件里
#include "afx.h" 去掉。

第2:
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);

改为
string sql;
_bstr_t bstSql;
sql="SELECT * FROM userinform where username='"+username+"' and password='"+password+"'";
bstSql=sql.c_str();
m_pRecordset->Open(bstSql,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText);

你试下看看