介绍一下使用Dialog based创建的一个用户登陆模块吧
我只在界面添加了2个edit控件,然后用在VC界面的MFC ClassWizard 的Member Variables选项卡给edit控件付变量分别是m_strUserName m_struserPwd.
然后
新键一个CUserRecordSet类基于CRecordset
创建时候显示连接数据源 在ODBC内选择数据源。(这里的提前在控制面板里面添加好你的数据源)
然后在选择数据库的表(这里我用的是ACCESS数据库)
在StdAfx.h头文件内必须#include <afxdb.h>他是声名CRecordset的基类。
然后在给BUTTON控件创建个函数,其针对这个模块代码如下:
//目的将表单中的控件的输入内容更新到所关联的变量上,让m_strusername和m_struserpwd获得输入直
UpdateData(TRUE);
//生成一个CUserRecordSet的实例,m_UserRecordSet用于操作数据库Demo01中的表
CUserRecordSet m_UserRecordSet;
try
{
//判断记录集是否打开,若打开则关闭他
if (m_UserRecordSet.IsOpen())
{
m_UserRecordSet.Close();
}
//定义查询语句,匹配准则为UserName=m_strUserName UserPwd=m_strUserPWD
m_UserRecordSet.m_strFilter.Format("UserName='%s' and UserPwd='%s'",m_strUserName,m_strUserPWD);
//执行操作语句
m_UserRecordSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
if(m_UserRecordSet.IsEOF())
{
m_UserRecordSet.Close();
AfxMessageBox("密码错误,请重试");
return;
}
else
{
//执行完毕后关闭记录集
m_UserRecordSet.Close();
AfxMessageBox("密码正确,登陆成功!");
}
}
catch (CException* e)
{
//捕获以为,把错误显示到界面上
e->ReportError();
return;
}
CDialog::OnOK();
这就OK了,整个程序只在创建CRecordset类的时候连了一下数据源,很简单的访问数据库的程序就写好了。不需要自己来写数据库的接口