用VB与SQL SERVER连接,读取界面的时候首先判断出用户账号和密码。正确后在数据库中读取出该登录用处的级别,在数据库中用数字1、2、3代表。现在登录界面判断账号已经做好了,但是如何通过判断账号正确后来读取用户的级别并且赋值给VB中的一个INTEGER变量,达到通过数字来判断用户等级从而打开不同的界面??我什么都不会,告诉我下具体代码啊,,最好有注释吧。。感谢不尽,~~谢谢了 

解决方案 »

  1.   

    strsql="select 账号, 密码, 级别 from s_employee where 账号 ='" & otxtUser & "' "
      

  2.   

    文不对题。应该是sql语句的问题,与登陆界面无关。建议看看sql查询,如数据库连接、查询、修改等。

    sql="select where 用户列=username from 表名"
    Rs.Open Sql, Conn, 3, 3
    jibie=RS("级别列")
      

  3.   

    弱弱的问下哈,那个Conn应该如何定义??
      

  4.   

    Dim cn As ADODB.Connection, rs As ADODB.RecordsetSet cn = New ADODB.Connection
    cn.Opon "Provider=sqloledb;Data Source=Aron1;Initial Catalog=pubs;User
           Id=sa;Password=123;" '连接字符串根据你的情况更改
    Set rs = cn.Execute("SELECT 密码, 级别 FROM 用户表 WHERE 用户账号 ='" & txtAcount & "'")If Not rs.EOF Then
        If rs!密码 = txtPassword Then intUserLevel = rs!级别
    End If Set rs = Nothing
    cn.Close
    Set cn = Nothing
      

  5.   

    我怎么就一直没想到在查询密码是否正确就直接把等级也查出来了。。
    不过麻烦大家在帮我看下这个代码还哪有错误吧。。谢谢了Private Sub cmdOK_Click()
    Dim connectionstring As String
    connectionstring = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=S_M_System;Data Source=(LOCAL)"Dim UserNo As String
    Dim userpassword As String
    Dim str As String
    Dim SQL As String
    Dim nTryCount As Integer
    nTryCount = 0
    Dim COUNT As String
    Dim rs As New ADODB.Recordset
    Set rs = New ADODB.Recordset
    UserNo = Trim(txtUserNo.Text)
    userpassword = Trim(txtPassword.Text)str = "select * from user_info where number='" & UserNo & "' and password = '" & userpassword & " '"
    rs.Open str, connectionstring, adOpenKeyset, 2
    COUNT = rs("Ulevel")If rs.EOF Then '登录失败
    MsgBox "对不起,无此用户或者密码不正确!请重新输入!!", vbCritical, "错误"
    txtUserNo.Text = ""
    txtPassword.Text = ""
    txtUserNo.SetFocus
    nTryCount = nTryCount + 1
    If nTryCount >= 3 Then
    MsgBox "您无权操作本系统!", vbCritical, "无权限"
    Unload Me
    End If
    Else '登陆成功
    If COUNT = 1 Then
    Amain.Show
    Unload Me
    End If
    If COUNT = 2 Then
    Tmain.Show
    Unload Me
    End If
    If COUNT = 3 Then
    Smain.Show
    Unload Me
    End IfEnd If
    Exit SubEnd Sub现在错误三次不出现提示,,判断等级那里还是不错,在if count=几那里提示类型不对,是我还没赋值正确啊?
      

  6.   

    Private Sub cmdOK_Click()
        Dim connectionstring As String
        connectionstring = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=S_M_System;Data Source=(LOCAL)"
        
        Dim UserNo As String
        Dim userpassword As String
        Dim str As String
        Dim SQL As String
        Dim nTryCount As Integer
        nTryCount = 0
        Dim COUNT As String
        Dim rs As New ADODB.Recordset
        Set rs = New ADODB.Recordset
        UserNo = Trim(txtUserNo.Text)
        userpassword = Trim(txtPassword.Text)
        
        str = "select * from user_info where number='" & UserNo & "' and password = '" & userpassword & " '"
        rs.Open str, connectionstring, adOpenKeyset, 2
        COUNT = rs("Ulevel")
        
        If rs.EOF Then '登录失败
            MsgBox "对不起,无此用户或者密码不正确!请重新输入!!", vbCritical, "错误"
            txtUserNo.Text = ""
            txtPassword.Text = ""
            txtUserNo.SetFocus
            nTryCount = nTryCount + 1
            
            If nTryCount >= 3 Then
                MsgBox "您无权操作本系统!", vbCritical, "无权限"
            End If
        Else '登陆成功
            intUserLevel = rs!级别
            
            Select Case COUNT
                Case 1
                    Amain.Show
                Case 2
                    Tmain.Show
                Case 3
                    Smain.Show
            End Select
        End If
        
        rs.Close
        Set rs = Nothing
        Unload Me
    '    Exit SubEnd Sub
      

  7.   

        Dim nTryCount As Integer
    拿到窗体级定义
        nTryCount = 0
    放到form_load里
      

  8.   

    str = "select * from user_info where number='" & UserNo & "' and password = '" & userpassword & " '"且只检查是否查询到记录。这样的登录检查有漏洞。例如攻击者输入:
    UserNo = "' OR 1=1 Or ''='"
    userpassword = 任意值你的查询语句将是:"select * from user_info where number='' OR 1=1 OR '' = '' and password = '123456'"这个 Where 条件恒为 True攻击者就可以获得你所有用户记录中第一条记录的权限,很可能是管理员哟。防御的方法是,获得记录后,再检查一次用户账号和输入内容是否一致,口令与输入值是否一致。