一次登录过程 [英] one time Login process

查看:28
本文介绍了一次登录过程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的 winform 应用程序中有 2 个表单.表单 1 用作登录表单,表单 2 用作用户登录后会看到的页面.现在我的表单 1 有两个文本框(用于用户名和密码)和一个按钮(登录/显示表单 2).每次用户运行应用程序时,他都必须使用表单 1 登录.我想要的是,当用户登录一次时,从下一次开始,他就不会必须再登录/他会直接看到表格 2 而不是 表格 1>表格 2.我的代码是:

I have 2 forms in my winform application.Form 1 serves as a LogIn form and Form 2 serves as a page that a user would see after log in.Now my form 1 has two text boxes(for username and password) and a button(to login/show form 2).Every time a user runs the application, he has to login using form 1.What i want is, when a user logs in for once,from the next time on,he wouldn't have to log in anymore/he would see the form 2 directly instead of Form 1>Form 2. My code is :

Private Sub Login_Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    If My.Settings.UserName = "" Then
        Me.Show()
    Else
        Try
            provider = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source="
            dataFile = "XXXXXXX"
            connString = provider & dataFile
            myConnection.ConnectionString = connString

            Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM [Login] WHERE [user_name] = @username AND [password] = @password", myConnection)

            myConnection.Open()
            cmd.Parameters.Add("@username", OleDbType.VarChar).Value = My.Settings.UserName
            cmd.Parameters.Add("@password", OleDbType.VarChar).Value = My.Settings.Password1
            Dim adapter As New OleDbDataAdapter(cmd)
            Dim table As New DataTable
            adapter.Fill(table)
            If table.Rows.Count <= 0 Then
                MsgBox("Sorry, username or password not found", MsgBoxStyle.OkOnly, "Invalid Login")
            Else

                Form1.Show()
                Me.Close()
                myConnection.Close()

            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    My.Settings.UserName = user_name.Text
    My.Settings.Password1 = password.Text
    My.Settings.Save()
    provider = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source="
    dataFile = "D:\jyothi school\School Management\School Management\AddStudent.accdb"
    connString = provider & dataFile
    myConnection.ConnectionString = connString
    myConnection.Open()

    Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM [Login] WHERE [user_name] = '" & My.Settings.UserName & "' AND [password] = '" & My.Settings.Password1 & "'", myConnection)
    Dim dr As OleDbDataReader = cmd.ExecuteReader
    If dr.HasRows Then
        Form1.Show()
        Me.Close()

    Else
        Me.Show()
        'MsgBox("Sorry, username or password not found", MsgBoxStyle.OkOnly, "Invalid Login")
    End If
    myConnection.Close()

End Sub

基本上,我希望将文本框的值保存在某个位置,然后应用程序将使用它来登录,而不是每次都让用户登录!

Basically, i want the textboxes's values to be saved some where and then the application would use it to log in instead of making the user log in every time!

推荐答案

首先,创建 2 个名为 Username 和 Password 的设置对象.现在在表单 1 的登录按钮上单击,添加以下代码:

First , create 2 settings object named Username and Password.Now on form 1's login button click, add these codes :

    my.settings.username=username.text
    My.settings.password=password.text
    My.Settings.Save

我建议你创建一个启动画面.现在添加一个后台工作人员.后台工作代码:

I suggest you to create a splash screen. Now add a background worker. Code for backgroundworker :

  If My.Settings.Username = ""  Then
  LogIn.Show

  Else

  Try
    Dim cmd as new oledbcommand("Select * rom [table] where [user_name]=@username and password=@password",connectionstring)

    con.Open()
        cmd.Parameters.Add("@username", OleDbType.VarChar).Value = my.settings.username
        cmd.Parameters.Add("@password", OleDbType.VarChar).Value = my.settings.password
        Dim adapter As New SqlDataAdapter(cmd)
        Dim table As New DataTable
        adapter.Fill(table)
        if table.rows.count <=0 then
         SHow warning message

        Else

         Form2.Show

        con.close

     Catch ex as exception
     Msgbox(ex.message)
     End try

这篇关于一次登录过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆