深圳文职工资待遇:vb中密码不能通过验证?这是怎么回事呀!!

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 22:11:37
access数据库lbkue在当前目前下
这是块内的代码:
Public mko As adodb.Connection

Public guanli As adodb.Recordset
Public conn As String

----------------------------------------------------

Sub main()
conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path + "\lbkue.mdb"
Set mko = New adodb.Connection
Set guanli = New adodb.Recordset
frmLogin.Show
End Sub

===========================================================
Private Sub cmdOK_Click()
Dim sysz As String
smmyzi = ""

If txtuserName = "" Then
MsgBox "用户名不能以为空"
txtuserName.SetFocus
End If
If txtPassword = "" Then
MsgBox "密码不能为空"
txtPassword.SetFocus
Else
smmyzi = "select *form 管理员 where guanli_id = '" + txtuserName + "' And guanli_pass ='" + txtPassword + "'"

MDIf.Show
End If

End Sub

VB使用ADO数据库可以分为有源数据库和无源数据库,即是否使用了DSN数据源,如下例:
1、在连接数据库前首先要在VB菜单中“工程”-“引用”从中选择 microsoft activeX Data objects 2.6 library和 microsoft activeX Data objects recordset 2.6两个组件,这是在连接数据前所必做的工作。
2、接下来定义ADO的连接对象,如下所示:
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
第一种方法采用的是无源的数据库连接方法
conn.ConnectionString = "Driver={sql server};server=JSZX3-11;uid=sa;pwd=;database=wzc"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select 用户名,密码 from login where 用户名=\'" & Trim(Combo1.Text) & "\' And 密码=\'" & Trim(Text1.Text) & "\'", conn, adOpenStatic, adLockReadOnly, adCmdText
If rs.EOF = True And rs.BOF Then
m = MsgBox("请重新登录", vbExclamation)
Text1.Text = ""
Text1.SetFocus
Else
Form1.Hide
End If
rs.Close
这是第二种方法连接数据库的方法,这一种方法是采用有源的方法与数据库连接的方法,代码如下所示:
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "DSN=login;uid=sa;pwd=;"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select 用户名 from login", conn, adOpenStatic, adLockReadOnly, adCmdText
Dim i As String
For t = 0 To Val(rs.RecordCount) - 1
i = Trim(rs.Fields("用户名").Value)
rs.MoveNext
Combo1.AddItem i
Next t
rs.Close

工程->引用->Microsoft ActiveX Data Objects 2.X Library
'莫依MM原创

Option Explicit

Private Rs As New ADODB.Recordset
Private Conn As New ADODB.Connection

Private Sub Form_Load()
Dim strConn As String

' 连接数据库的字符串
' 连接带密码的数据库,直接在连接符后面加上Jet OLEDB:DataBase Password='您的密码'
' 连接Access97数据库需要使用Jet.OLEDB.3.5,Access2K和以上数据库使用Jet.OLEDB.4.0
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Persist Security Info=False"

' 使用客户端数据游标
Conn.CursorLocation = adUseClient
' 打开Access的连接
Conn.Open strConn

' 如果RecordSet的状态不是关闭状态,则关闭Recordset
If Rs.State <> adStateClosed Then Rs.Close

' Recordser打开表People
Rs.Open "Select * from People", Conn, adOpenKeyset, adLockOptimistic

' 报告出 一共多少笔数据,测试是否存在数据
' MsgBox Rs.RecordCount

' 绑定进DataGrid
Set DataGrid1.DataSource = Rs

End Sub

我不懂VB的数据库操作,但是你的sql语句有问题,即使你编出了程序,别人仍可以用用户名:'or''='密码:'or''='来进入你的系统,你这样做是不安全的。