-----C#运用-access登陆界面-----
功能:
使用access建立小型数据库,保存用户名和密码.
在界面输入用户名和密码,以次登陆界面.
编者:张永辉 2012年10月30日
----------------------------------------------------------------------------------------------------
1 建立数据库
1 打开 0ffic2007 的access
2 模板类别 -> 功能 -> 空白数据库 -> 输入文件名 -> 选择存放地点 -> 确定
3 创建如下表单
username password date
Admin Admin 20121030
zyhui65 zhang 20121030
4 将建立好的数据库放在 D:\zyhui\cs1\db1.accdb
2 创建C#工程
1 打开vs2008
2 创建项目->visual c# -> windows窗体应用程序 ->输入名字cs1 ->选择地址D:\zyhui\cs1->确定
3 拖入控件
左则的工具箱->公共控件->button ->右键属性 -> text = 登陆 -> name=login
->公共控件->TxtBox ->右键属性 -> name=username
->公共控件->TxtBox ->右键属性 -> name=password
4 双击这三个控件,自动生成代码。按F5运行。
5 输入如下代码(完整版)
----------------------------------------------------------------------------------------------------
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;
//连接Access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!
using System.Data.OleDb;
namespace cs1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void password_TextChanged(object sender, EventArgs e)
{
}
private void username_TextChanged(object sender, EventArgs e)
{
}
private void login_Click(object sender, EventArgs e)
{
string password = this.password.Text;
string username = this.username.Text;
//----------数据库--------------------
//是指数据提供者,这里使用的是Microsoft Jet引擎,也就是Access中的数据引擎,asp.net就是靠这个和Access的数据库连接的.
string strConnection = "Provider = Microsoft.ACE.OLEDB.12.0;"; //C#读取Excel的连接字符串
//指定数据库在硬盘的物理位置他的标准形式是"Data Source=MyDrive:MyPath/MyFile.MDB".
strConnection += @"Data Source = D:\zyhui\cs1\db1.accdb";
OleDbConnection objConnection = new OleDbConnection(strConnection);
try
{
objConnection.Open(); //打开连接
//MessageBox.Show("打开数据库成功");
}
catch (Exception ex) // 这是一个常规的 catch 处理程序,能捕捉一切异常
{
string[] str = ex.ToString().Split(' ');
MessageBox.Show("打开数据库失败\t" + str[1]);
return;
}
//------------用户名------------------
OleDbCommand sqlcmdn = new OleDbCommand(@"select username from 表1 where username =" + "'" + username + "'", objConnection); //sql语句
try
{
OleDbDataReader reader = sqlcmdn.ExecuteReader(); //执行查询,用using替代reader.Close()
if (reader.Read()) //这个read调用很重要!不写的话运行时将提示找不到数据
{
//MessageBox.Show("用户名:"+reader.GetString(0));
}
else
{
MessageBox.Show("用户名不存在");
goto Error1;
}
}
catch (Exception ex)
{
MessageBox.Show("异常" + ex.ToString());
goto Error1;
}
//-------------密码-------------------
OleDbCommand sqlcmd = new OleDbCommand(@"select passWord from 表1 where password =" + "'" + password + "'", objConnection); //sql语句
try
{
OleDbDataReader reader = sqlcmd.ExecuteReader(); //执行查询,用using替代reader.Close()
if (reader.Read()) //这个read调用很重要!不写的话运行时将提示找不到数据
{
//MessageBox.Show("密码:"+reader.GetString(0));
}
else
{
MessageBox.Show("密码错误");
goto Error1;
}
}
catch (Exception ex)
{
MessageBox.Show("异常" + ex.ToString());
goto Error1;
}
MessageBox.Show("登陆成功");
return;
//------------失败或异常--------------
Error1:
objConnection.Close();
}
}
}