开篇
在现实程序开发中, 我们开发的最多,最广泛的还是一些各类型的数据管理系统,当然不同的系统有功能上的差异,数据库也不一样,但最主要,最常见的功能无外乎对数据的基本操作(增删改查).该系统开发系列记录了整个简易电影记录管理系统的开发过程,绝大部分功能模块设计与实现都附上了截图,大部分代码也都包含注释,十分适合C#新手学习和掌握.
本期概述
第一期我们一起来学习下如何使用Visual Studio 2008从新建项目到实现一个用户登录功能.
那么我们赶紧开始吧~~~~
1.新建项目
2.新建Winform(Windows 窗体应用程序) 如图
3.接下来新建好了Winform主窗体,并命名为 FrmLogin.cs.
界面设计:首先我们从左边的工具栏里拖出一个Button按钮,用于后期输入账号和密码后点击登录使用(如图所示).
4. 接下来是label框 用于提示需要在文本框Textbox内输入的内容.
5. 文本框Textbox 用于输入帐号和密码.
6.大体界面设计好了,我们需要给控件们赋予name属性名称(如下)
窗体name: FrmLogin.cs(之前已经命名过) 用户名文本框name:txtName 密码文本框name:txtPwd 登录按钮name:btnLogin
然后再添加一个登录成功后 的跳转窗体 name: FrmManager.cs
界面设计好了, 我们把需要创建一个数据库用于存取用户的账户和密码信息.
1.新建一个数据库
2.将数据库名设置为 Movie, 再点OK 就新建好了.
3.数据库创建好了,我们便开始新建数据表.
4.设置 列名(字段名) 数据类型 以及 是否允许该字段为空
列名分别为 用户ID: MId 用户名: MUserName 用户密码: MUserPwd
5.设置MId 的主键
6.设置好主键后, 将下面列属性中的是否自我增长标识(Identity Specification)也设置一下.
7. 将 Identity Specification 中的 Is Identity 设置为 Yes(目的是让每插入1行新数据 ID数自动+1).
8. 设好了以后保存数据表,表名为MovieAccount.
9.数据表建完以后,我们需要手动插入用户登录系统所需要的用户名和密码.
10.手动插入用户名和密码 如图所示(当然用户名和密码可以随意写,只要命名有意义且方便好记即可).
这样,数据库便建好了.
接下来设置登录窗体
1.由于是针对数据库的操作,首先我们需要添加一个系统用于连接数据库的配置文件 App.config.
右键项目名- 添加 - 新建项
然后选择 应用程序配置文件, 名称使用默认的 App.config 即可.
2.添加完配置文件后,我们需要在里面添加 连接字符串名称 add name="str" 和 数据库连接字符串内容 connectionString=".....".
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="str" connectionString="Data Source = .\SQLExpress2008; Initial Catalog=Movie;Integrated Security=True"/> </connectionStrings> </configuration>
设置完成 App.config 连接配置文件后,我们需要在登录窗体代码中来对其进行连接;这里我们需要用到ConfigurationManager(它提供了对客户端应用程序配置文件的访问).系统默认是不使用其命名空间的,因此我们需要对其进行解析;在解析前,需要添加一个对System.configuration程序集的引用.
图一
找到解决方案资源管理器下的 "引用", 右键 "添加引用".
图二
找到.net 项, 选择System.configuration,然后点确定.
图三
当你看到引用下面出现了System.configuration,便说明引用已添加完成.
图四
添加完引用后,我们在代码中添加一条用于连接配置文件的连接字符串.
//用于连接配置文件App.config string connStr = ConfigurationManager.ConnectionStrings["str"].ConnectionString;
添加位置 如下图
然后将鼠标移到ConfigurationManager单击右键,这时候出现一个解析选项;
选using System.Configuration (使用系统下的Configuration命名空间).
当然,由于登录窗体需要使用一些数据库操作指令的命名空间,例如SqlConnection等,系统默认是不使用的,所以同样我们需要自己解析一下.
同样右键SqlConnection解析,选择 using System.Data.SqlClient 或者System.Data.SqlClient.SqlConnection 都行.
完整代码如下
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Configuration; using System.Data.SqlClient; /******************************************************* ** 作者: SoFlash - 博客园 http://www.cnblogs.com/longwu ** 描述: FrmLogin.cs 用于 用户登录窗体的 实现 ******************************************************/ namespace 电影记录管理系统 { public partial class FrmLogin : Form { public FrmLogin() { InitializeComponent(); } //首先 设置 连接到配置文件组建 App.config //当然 这里的 ConfigurationManager 系统是默认不使用其命名空间的 因此需要解析 string connStr = ConfigurationManager.ConnectionStrings["str"].ConnectionString; private void btnLogin_Click(object sender, EventArgs e) { //使用SqlConnection 来连接数据库 using (SqlConnection conn = new SqlConnection(connStr)) { //创建sql 查询语句 string sql = "select MUserPwd from MovieAccount where MUserName ='" + txtName.Text + "'"; //创建 SqlCommand 执行指令 using (SqlCommand cmd = new SqlCommand(sql, conn)) { //打开数据库连接 conn.Open(); //使用 SqlDataReader 来 读取数据库 using (SqlDataReader sdr = cmd.ExecuteReader()) { //SqlDataReader 在数据库中为 从第1条数据开始 一条一条往下读 if (sdr.Read()) //如果读取账户成功(文本框中的用户名在数据库中存在) { //则将第1条 密码 赋给 字符串pwd ,并且依次往后读取 所有的密码 //Trim()方法为移除字符串前后的空白 string pwd = sdr.GetString(0).Trim(); //如果 文本框中输入的密码 ==数据库中的密码 if (pwd == txtPwd.Text) { //说明在该账户下 密码正确, 系统登录成功 MessageBox.Show("系统登录成功,正在跳转主页面..."); FrmManager manager = new FrmManager(); manager.Show(); this.Hide(); } else { //否则密码错误 再次输入密码 MessageBox.Show("密码错误!请再次输入!"); //并自动将当前密码 清空 txtPwd.Text = ""; } } else { //如果读取账户数据失败, 则用户名不存在 MessageBox.Show("用户名不存在,请重新出入!"); //并自动清空账户名 txtName.Text = ""; } } } } } } }
运行效果展示
图一
图二
图三
登陆成功后 跳转到管理窗体界面
这样一个电影记录管理系统的登录模块就做好了.
附上源代码 (包含数据库文件)
MovieRecordManagementSystem01.zip