zoukankan      html  css  js  c++  java
  • 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的方式,也有其他的方法。

  • 相关阅读:
    二分思想判断数组中是否有两数和为sum
    VC中#pragma warning指令
    (转)预编译头文件
    成为一名优秀程序员所需要知道的那些事
    SetThreadAffinityMask设置使用多核CPU的哪个核心
    DirectX 3D 设备丢失(lost device)的处理
    转载 CreateWaitableTimer和SetWaitableTimer函数
    转赵青《剑侠情缘网络版》开发回顾
    转载使用PostThreadMessage在Win32线程间传递消息
    VC使用CRT调试功能检测内存泄漏
  • 原文地址:https://www.cnblogs.com/xingzhui/p/6129974.html
Copyright © 2011-2022 走看看