ADO访问数据库问题啊,在线急等啊
void ADOConn::OnInitADOConnect()
{
::CoInitialize(NULL);
try
{
m_pConnection.CreateInstance( "ADODB.Recordset ");
_bstr_t strConnect= "Provider=SQLOLEDB;Server=localhost;DataBase=BOOKSYS;uid=sa;pwd= ' ' ";
m_pConnection-> Open(strConnect, " ", " ",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
然后我再在登陆窗口时,
user.Getdata(m_username);
if(user.GetUserPwd()==m_userpwd)
{
Cyx dlg;
dlg.DoModal();
}
程序就发送错误报告,什么原因啊?
[解决办法]
先把数据库链接搞定再说其它问题。
1。数据库链接字符串要规范
2。数据库服务器和你的程序是在一个主机上吗?如果是,用下面这个
Provider=SQLOLEDB.1;Password=你的密码;Persist Security Info=True;User ID=sa;Initial Catalog=BOOKSYS;Data Source=(local)
如果你的数据库服务器和你的程序不在一个主机上
请使用
Provider=SQLOLEDB.1;Password=你的密码;Persist Security Info=True;User ID=sa;Initial Catalog=BOOKSYS;Data Source=数据库IP地址
或者
使用数据客户端配置工具,配置正确的地址和名称对应
建议你建立一个空的计事本文件。后缀名改成.udl,然后双击来配置链接,选择oledb for sql server 如果你的数据库名称和用户名密码能成功建立连接,再写连接串
[解决办法]
我觉得你可以换个思路,不要根据用户名取密码
改为:查询用户名和密码与输入相同的记录,如果记录数不为零则通过验证
_vSQL = "SELECT * FROM Users WHERE UserName= 'user ' and UserPwd = 'password ' ";
//执行SELETE语句
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
//返回各列的值
if (!m_pRecordset-> adoEOF)
{
通过
}