ADO控件连数据库!!!!!!!

phlac 2004-10-27 10:06:43
在做登录窗体时,如果用ADO 控件(不用纯字符串)连接数据库(已连接成功),那后面的的用户和密码验证怎么写????
...全文
151 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sys9933 2004-10-30
  • 打赏
  • 举报
回复
dim sql as string
sql="select * from rs_login where rs_name='" & Trim(Text1.Text) & " and rs_pwd='" & Trim(Text2.Text) & "'"
Adodc1.RecordSource = sql
If Adodc1.Recordset.RecordCount > 0 Then
.....
else
....
end if
superstarchy 2004-10-28
  • 打赏
  • 举报
回复
sql="select * from login where 用户名='" & txtname.Text & "'"
if adors.recordCount =0 then
msgbox "无此用户"
elseif txtpassword.Text <> adors("password") then
msgbox "您输入的密码有误,请更正!"
else
Unload Me '通过身份验证后卸载登录窗体
frmsystem.Show '显示系统界面,可以进入系统操作
of123 2004-10-28
  • 打赏
  • 举报
回复
允许取消。给用户留一条退路。
另,最好设一个密码错误计数器变量,到达允许重试上限后退出。防止恶意猜测密码。

If MsgBox("您输入的密码有误,请更正!", vbOKCancel + vbExclamation, "系统提示"") = vbOk Then
of123 2004-10-28
  • 打赏
  • 举报
回复
不要将用户名和密码同时作为条件来查询。否则登录者可以通过一些技巧穿过你的验证。

Private Sub cmdOK_Click()
'运行时自动检测错误,检测到则到ErrMsg标号处做相应的处理On Error GoTo ErrMsg
Dim SQL As String '定义一个保存SQL语句的变量
'到Login表中查询是否有符合条件的记录存在
'使用的是Select count(*)from..返回值是一个大于等于0的整数
SQL = ""
SQL = "Select * From Login Where Name='" & Trim(txtname.Text) & "'"

Set adoRs = adoCon.Execute(SQL)
If adoRs.EOF Then
If MsgBox("您输入的用户名有误,请更正!", vbOKCancel + vbExclamation, "系统提示") = vbOk Then
txtname.SetFocus
Exit Sub
Else
Unload me
End
End If
End If
IF adoRs!Password <> Trim(txtpassword.Text) Then
If MsgBox("您输入的密码有误,请更正!", vbOKOnly + vbExclamation, "系统提示"") = vbOk Then
txtname.SetFocus
Exit Sub
Else
Unload me
End
End If
txtname.SetFocus
Exit Sub
End If

Unload Me '通过身份验证后卸载登录窗体
frmsystem.Show '显示系统界面,可以进入系统操作
phlac 2004-10-28
  • 打赏
  • 举报
回复
楼上兄弟我还是不太明白,这里有用ADO做验证的资料,你帮我改成用ADO控件做的好吗?

Public adoCon As ADODB.Connection '创建ADO连接数据库对象
Public adoRs As ADODB.Recordset '创建ADO记录集对象
Public adoCmd As ADODB.Command '创建ADO命令对象
Public adoPara As ADODB.Parameter '创建ADO参数对象
Public procon As String

Public Sub connectDB()
Set adoCon = New ADODB.Connection
With adoCon
.Provider = "SQLOLEDB"
.ConnectionString = "Server=luoyi;Uid=sa;Pwd=sa;Database=mydb"
.Open
End With
End Sub

Private Sub cmdOK_Click()
'运行时自动检测错误,检测到则到ErrMsg标号处做相应的处理On Error GoTo ErrMsg
Dim SQL As String '定义一个保存SQL语句的变量
'到Login表中查询是否有符合条件的记录存在
'使用的是Select count(*)from..返回值是一个大于等于0的整数
SQL = ""
SQL = "Select Count(*) From Login Where Name='" & Trim(txtname.Text) & "'"
SQL = SQL & " And Password='" & Trim(txtpassword.Text) & "'"

Set adoRs = adoCon.Execute(SQL)
If adoRs(0) = 0 Then
MsgBox "您输入的用户名或密码有误,请更正!", vbOKOnly + vbExclamation, "系统提示"
txtname.SetFocus
Exit Sub
End If

Unload Me '通过身份验证后卸载登录窗体
frmsystem.Show '显示系统界面,可以进入系统操作
lxcc 2004-10-27
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Adodc1.UserName = txtUserName
Adodc1.Password = txtPwd

Adodc1.Refresh
End Sub
phlac 2004-10-27
  • 打赏
  • 举报
回复
不是吧?我想问的是做登录窗体时怎样用ADO控件完成对窗体文本框中所输入的用户和密码与数据库进行比较验证.如果ok则进行下一步,就象windows中登录中的验证的那样密码错误则不能进入下一步。。
lxcc 2004-10-27
  • 打赏
  • 举报
回复
ADO控件的属性 内有 身份验证 填入身份验证信息即可!

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧