登录界面代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在平台下用C#和Access实现用户登录界面的窗体应用程序
一直就想加个technology的类别,但却迟迟未能动笔.一来不得不承认直到现在,我在技术上还依然只是一个没怎么入门的菜鸟,二来技术本身也不是我的兴趣所在.但不管怎样,既然我现在还要攻读计算机专业的硕士学位,那么技术,总还是要学的.
需要说明的是,对于那些高手来说,这里的东西想必都是小菜一碟,不值一提.我写在这里,只是给自己的总结吧.另外我所写的东西,很多也是参考网络和书籍的,其实真正属于我自己的东西也不多.由于四处查找,具体的出处很多也已记不清了,而且在开源环境下也很难说某些代码就是谁的原创,所以这里虽然没有说明,但很多东西也都是参考他人的,在此先要对那些给了我帮助的书籍作者,网上的发贴人和回贴人表示感谢.
去年研一刚开学时,自己的实践能力还几乎为零.因为我心里清楚,自己本科的确是混过来的,计算机科学与技术的学士学位,我其实是不配去拿的.九月十号进实验室后,开始学习项目组里需要用到的C#,但单纯学习语言也没什么明确的目的性.实验室里和我同一导师本校保研的同学和我说起,他们大四下学期刚进实验室时,师兄就让他们先试着写一个类似QQ登录那样的一个用户登录程序.我自己没有任何经验,想也就像他们一样,从这里起步吧,于是在看C#的同时我就考虑怎么样去实现这样一个程序了.
我知道对于过来人来说,这样的一个程序实在是再简单不过了,但对于当时刚开始的我,着实费尽了不少周折.虽然后来基本实现了这样一个程序,但在数据库上还是有些问题.因此虽然当时也曾想过贴个technology类别的日志,但终究还是一直拖了下来.
前段时间通过同学的介绍,帮沈阳日报的一个朋友做了一个会员管理的软件.软件本身也极其简单,基本没有太多的技术含量,但在开发的过程中自己通过各种渠道去查找资料,也在各方面都学到了很多.所以这段经历对我还是很有意义的.而且自己在计算机专业学了四年有半后终于可以自己做出来一些可以应用到实际中的东西,也终于凭借自己的专业能力获得了一点回报,无论回报是多是少.嗯,是要鼓励一下自己的.也激励自己再接再厉!
此后我可能会把在这一软件中所学到的东西陆续总结一下到这里.而这一软件开发的第一个模块也就是用户登录模块.也就是我最初在尝试做的东西.好,说了这么多无关的话,现在言归正传,来看登录模块的具体实现.
由于用户登录模块的实现关键的一点就是要将用户的信息存储在数据库中,并在用户登录时到数据库中对信息进行查找和核对,所以首先要先建立一个数据库.实际上对于初学者来说,数据库的相关操作也正是实现本登录模块的难点所在.这也是当时我刚开始写这段程序时困扰我并困扰了我很久的地方.在数据量不是很大的情况下,可以就用微软Office组件里的Access数据库,比较方便.这里在D盘用Access建立一个数据库命名为db.mdb,并在数据库中建一个表,命名为users ,在表中建两个字段,命名为userName和userPassword,分别存储用户名和密码.然后在表中插入几条数据,用于登录界面的测试.下面是登录模块的开发.
在Visual Studio2005的C#开发环境下,新建一个Windows 应用程序的项目,将第一个窗体命名为Login,即作为用户登录窗体.在窗体上添加相应控件,设计效果如下:
其中两个文本框分别命名为userNameTbx,pswTbx,用于接收用户输入的用户名和密码,两个按钮命名为loginBtn,cancleBtn,用于用户提交登录信息或取消以关闭登录框.将文本框pswTbx的PasswordChar属性设置为*或其它字符,这样用户在该文本框中键入字符时,界面显示的一律为*.
然后在项目中添加一个Windows窗体,命名为MainForm, 对于实际使用的软件来说,当用户登录成功后都应该弹出这样的软件主窗体.这里只是实现登录功能,暂不对主窗体添加任何内容.下面就是登录界面的后台实现,主要就是用户点击login按钮后后台事件响应代码的编写.登录窗体后台代码如下:
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace WindowsFormsApplication1
{
public partial class Login : Form
{
public Login()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
string connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\sdtinfo.mdb";
OleDbConnection conn = new OleDbConnection(connstring);
string name = "select * from Login where Login_name='"+ this.textBox1.Text + " 'and Login_password='" + this.textBox2.Text + " '";
OleDbCommand cmd = new OleDbCommand(name, conn);
conn.Open();
OleDbDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
// INFO InfoForm = new INFO();
// InfoForm.Show();
// this.Hide();
this.DialogResult = DialogResult.OK;
}
else
{
MessageBox.Show(" 用户名或密码出错");
}
reader.Close();
conn.Close();
cmd.Connection.Close();
}
}
}以上代码调试通过后,即可成功运行.当输入数据库中正确的用户名和密码后点击login ,则登录窗体关闭,主窗口弹出.大功告成!
大功真的告成了吗?且慢.
当在调试状态下启动软件,登录成功弹出主窗体后再关闭主窗体,从用户角度来说软件应该关闭了.但程序却还处在调试状态而没有结束运行.即使不在调试状态下,关闭主窗体后似乎软件已经关闭了,但实际上打开Windows任务管理器,发现登录窗体的线程还一直处在运行状态.这显然是不完善的.