于VS连接SQLserver 2005出现Unknown error!!!
BOOL CUserData::GetPassword(CString *UserName,CString *Password)
{
//初始化Com对象
CoInitialize(NULL);
try
{
//初始化数据库连接对象
_ConnectionPtr pConn("ADODB.Connection");
//定义数据库连接字符串
_bstr_t Connection="Provider=XL-20140730MUMZ;Integrated Security=true;Database=pcTest";
//打开数据库连接
pConn->Open(Connection,"","",adModeUnknown);
//初始化记录集对象
_RecordsetPtr pRs("ADODB.Recordest");
CString strSQL;
strSQL.Format(_T("Server=%s;DATABASE=%s;UID=%s;PWD=%s","192.168.1.101","pcTest","sa","zhangpan"));
//打开指定记录集
pRs->Open(_variant_t(strSQL.GetBuffer(strSQL.GetLength())),_variant_t(pConn,true), adOpenStatic, adLockOptimistic, adCmdText);
//访问记录集中数据
if (pRs->BOF)
{
//关闭记录集
pRs->Close();
pRs.Release();
//关闭数据库连接
pConn->Close();
pConn->Release();
UserName->ReleaseBuffer();
Password->ReleaseBuffer();
return FALSE;
}
else
{
pRs->Close();
pRs.Release();
//关闭数据库连接
pConn->Close();
pConn->Release();
UserName->ReleaseBuffer();
Password->ReleaseBuffer();
return TRUE;
}
}
catch (_com_error &e)
{
::CoUninitialize();
::AfxMessageBox(e.ErrorMessage());
return FALSE;
}
这是我连接数据库的代码
下面是我实现的功能(简单用户界面登陆)的代码
void CUserDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CString UserName,StrTemp;
CString Password,strPassword;
UpdateData(true);
if((new CUserData)->GetPassword(&UserName,&strPassword))
{
m_Password.GetWindowText(StrTemp);
if(Password.CompareNoCase(strPassword)==0)
{
MessageBox(L"登陆成功",L"系统登陆",MB_OK|MB_ICONWARNING);
CDialog::OnOK();
UpdateData(false);
}
else
{
MessageBox(L"密码不正确",L"系统登陆错误",MB_OK|MB_ICONWARNING);
UpdateData(false);
CDialog::OnOK();
}
}
else
{
MessageBox(L"用户不存在",L"登陆失败",MB_OK|MB_ICONWARNING);
UpdateData(false);
CDialog::OnOK();
}
}