简单的登录模块

来源:互联网 发布:黑客专用软件 编辑:程序博客网 时间:2024/06/06 09:02
 

    该模块实现的功能主要是用户登录;用户登录输入的数据如果错误三次,那么就不可以再进行登录,系统将退出程序;当然,该模块的程序不是很完善,比如:当用户在第三次输入数据时正确,那么就应该将前面的错误次数清除掉,但程序没有这样实现;当然我会进一步完善;下面是对模块的实现:

     private void button2_Click(object sender, EventArgs e)
        {
            string conn = "initial catalog=MyADO;server=.;integrated security=true;";
                if(textBox1.Text.Trim()==""||textBox2.Text.Trim()==""){

      MessageBox.Show("请输入数据","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                    return;
                }
                else{
                    using(SqlConnection sqlconn=new SqlConnection(conn)){

                        sqlconn.Open();
                        using(SqlCommand sqlcmd=sqlconn.CreateCommand()){
  sqlcmd.CommandText = "select * from UserInfo where
UserName=@username";
            sqlcmd.Parameters.Add(new SqlParameter("username", textBox1.Text.Trim()));
                            SqlDataReader dr = sqlcmd.ExecuteReader();
                            if(dr.Read()){
                int num = dr.GetInt32(dr.GetOrdinal("ErroTime"));
                                if(num==3){

                                    dr.Close();
                                    dr.Dispose();
                                    sqlconn.Close();
                                    sqlconn.Dispose();

                     MessageBox.Show("您不可以再进行登录操作!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                                    Application.Exit();
                                }
                                else{
                                ///可以继续进行登录操作;
                      //string username=dr.GetString(dr.GetOrdinal("UserName"));
                             string userpwd=dr.GetString(dr.GetOrdinal("UserPWD"));
                                    if(userpwd==this.textBox2.Text.Trim()){

     MessageBox.Show("登录成功","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
                                        return;//// 登录成功应该跳转;

                                    }
                                     else{
                                         num++;
      MessageBox.Show("密码不正确","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                                        ///写入到数据库中;
                                                 dr.Dispose();
                                        sqlconn.Close();
                                        sqlconn.Dispose();
                using(SqlConnection sconn=new SqlConnection(conn)){
                                           sconn.Open();
                                        using (SqlCommand cmd =sconn.CreateCommand()) {
 cmd.CommandText = "update UserInfo set
ErroTime=@errotimes where UserName=@username";
                            cmd.Parameters.Add(new SqlParameter("errotimes", num));

         cmd.Parameters.Add(new SqlParameter("username",textBox1.Text.Trim()));
                                            cmd.ExecuteNonQuery();/// 执行;
                                            sconn.Close();
                                            sconn.Dispose();
                                               }             }   } }     }
                            else{

 MessageBox.Show("该用户不存在","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                                return;
                            }    }      } }   }

 

数据库表:

USE [MyADO]
GO
CREATE TABLE [dbo].[UserInfo](
 [ID] [int] IDENTITY(1,1) NOT NULL,
 [UserName] [varchar](16) COLLATE Chinese_PRC_CI_AS NOT NULL,
 [UserPWD] [varchar](16) COLLATE Chinese_PRC_CI_AS NOT NULL,
 [ErroTime] [int] NOT NULL CONSTRAINT [DF_UserInfo_ErroTime]  DEFAULT ((0)),
 CONSTRAINT [PK_UserInfo] PRIMARY KEY CLUSTERED
(
 [ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF


原创粉丝点击