C#基础——系统登录功能的实现

一般的登陆界面,都是利用用户名和密码在数据库的匹配关系,来实现登陆的跳转功能。

首先介绍用户数据表的设计。

其中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=MHZHANGSQLEXPRESS;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的方式,也有其他的方法。

原文地址:https://www.cnblogs.com/xingzhui/p/6129974.html