一般的登陆界面,都是利用用户名和密码在数据库的匹配关系,来实现登陆的跳转功能。
首先介绍用户数据表的设计。
其中ID列需要设置好增量标识,随着用户的增加,ID的值递增,避免重复。
然后是C#中对数据库的操作类。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
class DataBase { public static string Login_ID = ""; public static string Login_Name = ""; public static SqlConnection My_Conn; public static string openConnstr = @"Data Source=MHZHANG\SQLEXPRESS;Database=db_zmh;User id=XXXX;PWD=XXXXXXXX"; public static SqlConnection getcon() { My_Conn = new SqlConnection(openConnstr); My_Conn.Open(); return My_Conn; } public void con_open() { getcon(); } public void conn_close() { if (My_Conn.State == ConnectionState.Open) { My_Conn.Close(); My_Conn.Dispose(); } } public SqlDataReader getsdr(string sqlstr) { getcon(); SqlCommand My_com = My_Conn.CreateCommand(); My_com.CommandText = sqlstr; SqlDataReader My_Reader = My_com.ExecuteReader(); return My_Reader; } public void dosqlcom(string sqlstr) { getcon(); SqlCommand sqlcom = new SqlCommand(sqlstr, My_Conn); sqlcom.ExecuteNonQuery(); sqlcom.Dispose(); conn_close(); } public DataSet getDs(string sqlstr, string tableName) { getcon(); SqlDataAdapter sqlda = new SqlDataAdapter(sqlstr, My_Conn); DataSet My_DataSet = new DataSet(); sqlda.Fill(My_DataSet, tableName); conn_close(); return My_DataSet; } } |
对数据库的链接方式个人有所不同,仅供参考。
最后是登陆窗体的代码实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
public partial class Form_Login : Form { DataBase userDB = new DataBase(); public Form_Login() { InitializeComponent(); } private void btn_Login_Click(object sender, EventArgs e) { if (tb_UserName.Text != "" & tb_UserPwd.Text != "") { SqlDataReader temdr = userDB.getsdr("select * from tb_UserList where UserName='" + tb_UserName.Text.Trim() + "' and UserPwd='" + tb_UserPwd.Text.Trim() + "'"); bool ifcom = temdr.Read(); if (ifcom) { Form_Main frmMain = new Form_Main(); frmMain.Show(); this.Hide(); } else { MessageBox.Show("用户名或密码错误!"); tb_UserName.Text = ""; tb_UserPwd.Text = ""; } userDB.conn_close(); } else MessageBox.Show("请填写用户名和密码!"); } private void Form_Login_Load(object sender, EventArgs e) { try { userDB.con_open(); userDB.conn_close(); tb_UserName.Text = ""; tb_UserPwd.Text = ""; } catch { MessageBox.Show("数据库连接错误!"); Application.Exit(); } } private void Form_Login_Activated(object sender, EventArgs e) { tb_UserName.Focus(); } private void btn_Quit_Click(object sender, EventArgs e) { Application.Exit(); } } |
判断用户在数据表中存在的方法是利用SQLDataReader的方式,也有其他的方法。