C++项目开发全程实录(第2版)
上QQ阅读APP看书,第一时间看更新

2.6 注册模块设计

视频讲解

2.6.1 注册模块概述

注册模块是一个完善的管理系统中必不可少的部分,主要用于预防非法用户随意登录系统并对系统数据进行修改破坏,给经营者造成不可挽回的损失。只有系统管理者才能通过注册模块对指定的人员进行注册,使其可以对系统进行相应的操作,大大提高了系统的安全性。注册模块的运行效果如图2.31所示。

图2.31 注册模块效果图

2.6.2 注册模块技术分析

在此模块中主要知识点是SQL语句的灵活运用,通过向数据表中直接添加数据即可达到实现用户注册的目的,添加数据可以用INSERT语句来实现。在此也介绍了SQL语句的执行方法Execute,通过连接对象的Execute方法可以很容易地执行INSERT语句。

Execute方法的语法如下:


     Connection Execute(_bstr_t CommandText,VARIANT * RecordsAffected,long Options)

 CommandText:命令字符串,通常是SQL命令。

 RecordsAffected:操作后所影响的行数。

 Options:CommandText中内容的类型,其值如表2.1所示。

表2.1 Options值表

INSERT语句的基本语法如下:


     INSERT INTO [表名](需要插入的列名) values(要插入的数值)

例如,读者想向用户注册信息表中插入一条用户信息,INSERT语句可写为:


     CString sql;
     sql.Format("INSERT INTO register(username,userpasswd) values('%s', '%s')");

接下来要执行这条语句就可以使用Execute方法。


     m_pCon->Execute((_bstr_t)sql,NULL,adCmdText); //m_pCon是一个数据库连接对象

2.6.3 注册模块实现过程

 本模块使用的数据表:Login

(1)在Resources选项卡中插入一个对话框资源,在对话框中添加3个静态文本控件、3个编辑框控件和两个按钮控件。控件的属性及变量如表2.2所示。

表2.2 控件属性及变量设置

(2)给对话框新建一个类CZhucedlg,在类中添加一个_RecordsetPtr类型变量m_pRs并导入全局变量theApp。

(3)双击注册模块对话框中的“提交”按钮,在弹出的函数名称窗口中定义函数名称,单击“确定”按钮,进入按钮的代码编写界面。

当用户单击“提交”按钮时,系统应该判断输入的用户名是否跟数据表中的用户名重复,如果重复则弹出提示对话框;再判断两次密码输入是否一致,如果不一致则需弹出提示对话框要求重新输入,成功后则向数据表中插入用户名、密码和权限(默认权限为0)信息,代码如下:

(4)为“重置”按钮添加代码,“重置”按钮主要实现的功能是把对话框中的3个编辑框控件的状态设置为初始状态,代码如下: