locked
FAQs: 怎样创建一个登陆窗体,并且登陆时密码区分大小写? RRS feed

  • 问题

  • 为了帮助大家更好地学习 Visual Basic技术,微软论坛技术支持团队编辑了一些列的 "Visual Basic 常见问题及解答" 精华帖。

    本帖的主题是:怎样创建一个登陆窗体,并且登陆时密码区分大小写?

    如果您觉得这个帖子对您的学习、工作有所帮助,请再把这个帖子分享给你的同学、同事和朋友。

    如果您想阅读更多的 "Visual Basic 常见问题及解答",请打开索引页面:
    http://social.msdn.microsoft.com/Forums/zh-CN/vbasiczhchs/thread/c9ab4b8e-99dc-49a2-bcea-30f3ecc3c3b7


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年3月3日 2:08

答案

  •   以下是一种解决方案

    1) 使用MS Access 数据库,创建一个myDB.mdb数据库,包含一个User数据表,

    User 表中有2个字段, Usernametext)和Passwordtext

    2) 创建一个Winform 应用程序,添加“Login Form”模板

    单击项目菜单-> 添加winform-> 选择“Login Form”模板

    3) 代码示例:

    需要改变控件的名字

    txtUsername TextBox, txtPassword TextBox, OK button and Cancel button

     

    Imports System.Data.OleDb

    Public Class LoginForm1

        ' OK 按钮单击事件  

        Private Sub OK_Click(ByVal sender As System.Object, _

                       ByVal e As System.EventArgs) Handles OK.Click

            Dim con As New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;data source=D:\myDB.mdb")

            Dim cmd As OleDbCommand = New OleDbCommand( _

                       "SELECT * FROM Users WHERE Username = '" & _

                       txtUsername.Text & "' AND [Password] = '" & txtPassword.Text & "' ", con)

            con.Open()

            Dim sdr As OleDbDataReader = cmd.ExecuteReader()

            If (sdr.Read() = True) Then

                MessageBox.Show("The user is valid!")

                Dim mainForm As New MainForm

                mainForm.Show()

                Me.Hide()

            Else

                MessageBox.Show("Invalid username or password!")

            End If

        End Sub

           

        Private Sub Cancel_Click(ByVal sender As System.Object, _

                        ByVal e As System.EventArgs) Handles Cancel.Click

            Me.Close()

        End Sub

    End Class

     

    参考资料:

    http://social.msdn.microsoft.com/forums/en/vbgeneral/thread/4eb4dc84-a62f-4a46-95b0-3b981fb83f23/

    http://social.msdn.microsoft.com/Forums/en/vbgeneral/thread/20a1564c-77ac-4972-9e23-840d63f7622f

    在以上的代码中,密码是不区分大小写的,要区分大小写参考下面代码:(思路:从数据库取出要比较的密码和密码框中的密码比较)

    Imports System.Data.OleDb

    Public Class LoginForm1

        Private Sub OK_Click(ByVal sender As System.Object, _

                       ByVal e As System.EventArgs) Handles OK.Click

            Dim con As OleDbConnection = New OleDbConnection( _

                       "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\myDB.mdb;")

            Dim cmd As OleDbCommand = New OleDbCommand( _

                       "SELECT * FROM Users WHERE Username='" & _

                       txtUsername.Text & "' and [Password]='" & txtPassword.Text & "'", con)

            con.Open()

            Dim sdr As OleDbDataReader = cmd.ExecuteReader()

            If sdr("Password") <> txtPassword.Text.ToString() Then

                MessageBox.Show("Invalid password!")

            End If

            sdr.Close()

            con.Close()          

        End Sub

    End Class

    参考资料:

    http://social.msdn.microsoft.com:80/Forums/en/vbgeneral/thread/cb2e617a-d226-4b20-bff3-11180dfe1b71/


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年3月3日 2:10