windows程序设计——飞机大战笔记(解决输入混合password账户,结局自己主动记录数据)
////////////////////2015/07/23///////////////////
////////////////////by xbw///////////////////////////
////////////////////环境 VS2013///////////////
问题又攻克了,攻克了登陆仅仅能用数字登陆的问题。还有自己主动记录数据的问题。。
这个仅仅能用数字登陆是后来调试出来的bug,之前没想到。为了调试方便,仅仅用了账号为1。password为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);对照一下吧;;;;真是没想到,改动了半天又该回去了,还是不理解啊,仅仅能乱摸索;;;;。
至于自己主动记录的问题。这个也是使用全局变量的,,非常easy就攻克了。;。
/*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)//假设password和账户与数据库一致
{
user = m_logname;
MessageBox(_T("登入成功!"), _T("温情提示"));
CDialog::OnOK();
first = 0;
break;
}
else
{
Dbset.MoveNext();
}对照一下跟之前有什么不同,。多了一句user=m_logname;。。
这个user就是全局变量 ,。,
if (Sname.Compare(user) == 0)//假设password和账户与数据库一致
{
Dbset.Edit();
Dbset.SetFieldValue(_T("Score"), _variant_t(Str));
Dbset.Update();
MessageBox(_T("纪录已储存"), _T("温情提示"));
first = 0;
break;
}记录这边这样改动就好了,换成user;。;。
真开心,最终能够提交了;;;。。
炫耀一下我的成果
就这样吧。有须要project文件的留言哟,我会发给你们的!!
!
。
浙公网安备 33010602011771号