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