標籤:
////////////////////2015/07/23///////////////////
////////////////////by xbw///////////////////////////
////////////////////環境 VS2013///////////////
問題又解決了,解決了登陸只能用數字登陸的問題,還有自動記錄資料的問題;;
這個只能用數字登陸是後來調試出來的bug,之前沒想到,為了調試方便,只用了帳號為1,密碼為1來測試的,現在才發現問題,,,其實只要換點代碼就好了,,,
/*Dbset.GetFieldValue(_T("Name"), var);Sname = (LPCSTR)var.pbstrVal;Dbset.GetFieldValue(_T("Psw"), var);Spsw = (LPCSTR)var.pbstrVal;Dbset.GetFieldValue(_T("Score"), var);Sscore = (LPCSTR)var.pbstrVal;*/_variant_t varname, varpsw;varname = Dbset.GetFieldValue(_T("Name"));varpsw = Dbset.GetFieldValue(_T("Psw"));Sname = (LPCSTR)_bstr_t(varname);Spsw = (LPCSTR)_bstr_t(varpsw);
對比一下吧;;;;真是沒想到,修改了半天又該回去了,還是不理解啊,只能亂摸索;;;;;
至於自動記錄的問題,這個也是使用全域變數的,,很容易就解決了;;;
/*Dbset.GetFieldValue(_T("Name"), var);Sname = (LPCSTR)var.pbstrVal;Dbset.GetFieldValue(_T("Psw"), var);Spsw = (LPCSTR)var.pbstrVal;Dbset.GetFieldValue(_T("Score"), var);Sscore = (LPCSTR)var.pbstrVal;*/_variant_t varname, varpsw;varname = Dbset.GetFieldValue(_T("Name"));varpsw = Dbset.GetFieldValue(_T("Psw"));Sname = (LPCSTR)_bstr_t(varname);Spsw = (LPCSTR)_bstr_t(varpsw);if (Sname.Compare(m_logname) == 0 && Spsw.Compare(m_logpsw) == 0)//如果密碼和賬戶與資料庫一致{user = m_logname;MessageBox(_T("登入成功!"), _T("溫情提示"));CDialog::OnOK();first = 0;break;}else{Dbset.MoveNext();}
對比一下跟之前有什麼不同,,多了一句user=m_logname;;;
這個user就是全域變數 ,,,
if (Sname.Compare(user) == 0)//如果密碼和賬戶與資料庫一致{Dbset.Edit();Dbset.SetFieldValue(_T("Score"), _variant_t(Str));Dbset.Update();MessageBox(_T("紀錄已儲存"), _T("溫情提示"));first = 0;break;}記錄這邊這樣修改就好了,換成user;;;;
真開心,終於可以提交了;;;;;
炫耀一下我的成果
就這樣吧,有需要工程檔案的留言喲,我會發給你們的!!!!
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
windows程式設計——飛機大戰筆記(解決輸入混合密碼賬戶,結局自動記錄資料)