windows程序设计——飞机大战笔记(解决输入混合密码账户,结局自动记录数据)

////////////////////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程序设计——飞机大战笔记(解决输入混合密码账户,结局自动记录数据)_第1张图片



windows程序设计——飞机大战笔记(解决输入混合密码账户,结局自动记录数据)_第2张图片

就这样吧,有需要工程文件的留言哟,我会发给你们的!!!!

你可能感兴趣的:(windows程序设计——飞机大战笔记(解决输入混合密码账户,结局自动记录数据))