大家能帮帮小弟吗?我用vb做一个系统登陆sql server时,想把登陆sql server的账号作为登陆数据库的用户名和密码,问题是,我如果把登录名输错,系统自动弹出一个对话框,说“用户‘登录名’登陆失败”,点确定后,程序弹出adodc1的refresh方法失败,我的想法是让窗体收到这个登陆失败对话框的消息后,点击确定按钮,后让程序退出,请问有办法解决吗?急等!!! 谢谢大家了!
解决方案 »
- 高手哪儿去了,再加五十分,使用INET控件采集网页时出现的字符问题!在线等待答案
- MUTEX的释放问题,急
- 如何将一组数以二进制形式相加
- 各位牛人碰到过该问题的请帮帮忙:通讯端口已打开(关于Mscomm控件)----UP有分,不够再加!
- 刚学VB,老师让我写个程序!,我不知道这里哪里错了!帮忙看下!谢了
- 请教设置文件安全属性的api函数的用法?
- 自定义函数返回值是一维数组,程序怎么写?(在线等待,急)
- WINDOWS的开始菜单问题![帮忙up的有分]
- VB中打开时ACCESS出错
- 如何得到PictureBox控件中的其他控件的名称
- 如何用SQL查询记录中不止一条记录的内容
- 怎样取消对工作表的保护
2,不建议用adodc控件绑定数据库,而是使用ado对象通过代码来连接数据
3,使用错误陷井来处理程序出错以下是一个例子,可以参考:'创建对象连接数据库
dim conn as new adodb.connection
With conn
If .State = adStateOpen Then .Close
.ConnectionString = "driver=SQL Server;server=SQL所在服务器名或IP地址;uid=sa;pwd=sa的密码;database=数据库名"
.CommandTimeout = 0
.Open
End With'以下是一段登录的代码
Private Sub cmdenter_Click()
On Error GoTo ErrHandle
dim ar_tmp as new adodb.recordset
If Trim(dpLoginDate.Value) = "" Then
MsgBox "请输入登录日期!", 48, "提示"
Exit Sub
End If
Screen.MousePointer = vbHourglass
If Trim(txtcUserName.Text) = "" Then
MsgBox "请输入登录用户!", 48, "提示"
Screen.MousePointer = vbDefault
txtcUserName.SetFocus
Exit Sub
End If
StrSql = " select cUserCode,cUserName,cUserpwd,bUserAdmin,bUserFbd from base_users " _
& " where cUserCode='" & Trim(txtcUserName.Text) & "'"
If ar_Tmp.State <> adStateClosed Then ar_Tmp.Close
ar_Tmp.Open StrSql, g_strDBConn, adOpenKeyset, adLockReadOnly
If ar_Tmp.RecordCount = 0 Then
MsgBox "登录用户错误!", 48, "提示"
Screen.MousePointer = vbDefault
ar_Tmp.Close
Exit Sub
Else
If Not (IsNull(ar_Tmp!cUserPwd) Or ar_Tmp!cUserPwd = "") Then
If Trim(ar_Tmp!cUserPwd) <> Trim(txtcPassword.Text) Then
MsgBox "登录密码错误!", 48, "提示"
If ar_Tmp.State <> adStateClosed Then ar_Tmp.Close
Screen.MousePointer = vbDefault
Exit Sub
End If
Else
If Trim(txtcPassword.Text) <> "" Then
MsgBox "登录密码错误!", 48, "提示"
If ar_Tmp.State <> adStateClosed Then ar_Tmp.Close
Screen.MousePointer = vbDefault
Exit Sub
End If
End If
If ar_Tmp!buserFbd = True Then
MsgBox "此用户已经停用!", 48, "提示"
If ar_Tmp.State <> adStateClosed Then ar_Tmp.Close
Screen.MousePointer = vbDefault
Exit Sub
End If
'是否系统管理员
If ar_Tmp!bUserAdmin = True Then
g_blnUserAdmin = True
Else
g_blnUserAdmin = False
End If
End If
If ar_Tmp.State <> adStateClosed Then ar_Tmp.Close
Screen.MousePointer = vbDefault
Exit Sub
'错误处理
ErrHandle:
If ar_Tmp.State = adStateOpen Then ar_Tmp.Close
MsgBox "操作失败,错误原因为:" & Err.Description, vbExclamation, "提示"
Exit Sub
End Sub