首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

ADO访问数据库有关问题啊在线急等

2012-01-11 
ADO访问数据库问题啊,在线急等啊voidADOConn::OnInitADOConnect(){::CoInitialize(NULL)try{m_pConnectio

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)
{
通过
}

热点排行