代碼如下,順便請高人給我查下錯。頭都大了,弄不明白錯在哪。編譯通過。只是會出現run time error!
UpdateData(true);
if (m_usename.IsEmpty()||m_password.IsEmpty())
{
MessageBox("帳號和密碼不能為空!","提示");
}
m_pConnection.CreateInstance("ADODB.Connection");
m_pConnection->ConnectionTimeout=5;
m_pConnection->ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;\
User ID=sa;Initial Catalog=lyelcn;Data Source=USER-20160310QY\\INST1";
HRESULT hr;
hr=m_pConnection->Open(_T(""),_T(""),_T("12345"),adConnectUnspecified);
if (FAILED(hr))
{
MessageBox("資料庫連接失敗了!","提示");
return;
}
try{hr=m_pRecordset.CreateInstance("ADODB.Recordset");}
catch(...){AfxMessageBox("資料集對像建立失敗!");}
bool found=false;
CString username;
CString password;
while(m_pRecordset->adoEOF)
{
username=(char*)(_bstr_t)m_pRecordset->GetCollect("yonghuming");
password=(char*)(_bstr_t)m_pRecordset->GetCollect("mima");
if(password==m_password && username==m_usename)
{
found=true;
break;
}
m_pRecordset->MoveNext();
}
if(found)
{AfxMessageBox("登陸成功");}
else
{AfxMessageBox("登陸失敗");}
m_pRecordset->Close();
uj5u.com熱心網友回復:
你打個斷點,然后Debug模式下單步執行F10一下,看看哪個函式呼叫失敗了不就清楚了~uj5u.com熱心網友回復:
你不會寫個SQL陳述句,直接判斷有沒有用戶名為m_usename、口令為m_password 的記錄存在,這樣回傳一個結果就可以了。試一試,為所有資料庫操作的陳述句,增加try、catch,catch時捕獲 _com_error,看看_com_error中有沒有有用的錯誤資訊。
uj5u.com熱心網友回復:
思路很另類啊,為什么不是用一句SQL來查詢,而是把記錄集里的每一條記錄一個一個和輸入的作對比,這樣不累嗎uj5u.com熱心網友回復:
多半是某一步例外了, 導致程式退出在你給出的代碼的第一行按F9下斷點, 然后按F5除錯運行程式, 斷下來后, 單步運行程式, 看在哪一句出錯.
uj5u.com熱心網友回復:
沒有查詢的sql陳述句啊,記錄集哪里會有資料轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/129720.html
標籤:基礎類
