////////////////////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;;;;
真开心,终于可以提交了;;;;;
炫耀一下我的成果
就这样吧,有需要工程文件的留言哟,我会发给你们的!!!!
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-05 13:52:46