访问数据库问题,请高手帮我解决!

Qthinker 2003-11-07 02:13:12

在局域网内我建立一台主机(操作系统是windows2000server)
一台客户机(windows98)
我做了一个客户机登陆系统的软件,登陆是要求输入用户名,密码
;用户名,密码放在一个数据库(sql or access)中的表里。
而这个数据库放在服务器上,我每次在客户机子上登陆时,必须是数据库中的数据才能正确登陆.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我现在的问题是:
我要怎样编写访问服务器上的数据库的代码呢??用ADO(50') 或者 RDS(50')
我对数据库还不太了解,请大侠帮我详细解答,
谢谢
...全文
6 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Lucky527 2003-11-12
Provider是指提供者
回复
peilianhai 2003-11-07
用ado ,数据库连接字符串里数据库信息,写数据库的网络地址信息!
回复
palmkey 2003-11-07
最好用高一点的,好兼容一些
如2.0的不支持access 2000
回复
Qthinker 2003-11-07
我的SQL服务器名ASP
数据库是user
我的IP局域网自动分配的IP 172.16.133.80
我在设置是
cn.Open "Provider=MSDataShape.1;Data Source=172,16,133,80;" & _"Connect Timeout=15;UID=sa;PWD=123;Database=user;Data Provider=SQLOLEDB"
运行时出现没有连接数据库的不存在,或拒绝访问的错误


引用Microsof Activex Data Object2.5 Library
我的有2.0,2.1,2.2,..,2.6
我该用哪个呢?
请赐教

回复
Qthinker 2003-11-07
请问 Lucky527(幸运星)

cn.Open "Provider=MSDataShape.1;Data Source=16.45.65.212;" & _
"Connect Timeout=15;UID=sa;PWD=123;Database=ll;Data Provider=SQLOLEDB"

中的 provider是什么含义呀?

回复
Qthinker 2003-11-07
谢谢各位,各有千秋,希望大侠不要保留拉!!!
回复
射天狼 2003-11-07
'菜单 "工程/引用/Microsof Activex Data Object2.0 Library" 后面为版本号
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

cn.CursorLocation = adUseClient
cn.Open "Provider=SQLOLEDB;Data Source=servername;User Id=sa;PassWord=****;Initial Catalog=dbname"
rs.Open "select * from users where username='" & txtUser.Text & "'", cn

If rs.EOF Then
MsgBox "对不起,用户名称不正确~", vbExclamation
ElseIf rs!pass <> txtPass.Text Then
MsgBox "对不起,用户密码不正确~", vbExclamation
End If

rs.Close
Set rs = Nothing
回复
Lucky527 2003-11-07
我的系统也是2000 server
客户端也是98
回复
Lucky527 2003-11-07
符合要求的完整代码:
Option Explicit
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Private Sub Form_Load()
MDIForm1.Enabled = False
cn.Open "Provider=MSDataShape.1;Data Source=16.45.65.212;" & _
"Connect Timeout=15;UID=sa;PWD=123;Database=ll;Data Provider=SQLOLEDB"
End Sub

Private Sub cmdOK_Click()
Dim strUserPass As String, strUsername As String
'判断用户是否已经输入用户名和密码
strUsername = Trim(txtUserName.Text)
strUserPass = Trim(txtPassword.Text)
If strUsername = "" Then
MsgBox "请输入用户名", vbExclamation, "登录提示"
txtUserName.SetFocus
Exit Sub
End If
If strUserPass = "" Then
MsgBox "请输入密码", vbExclamation, "登录提示"
txtPassword.SetFocus
Exit Sub
End If
'判断用户登录信息是否正确
rs.Open "select * from password where username='" & strUsername & "'", cn, adOpenStatic, adLockOptimistic
If rs.EOF Then
MsgBox "没有此用户", vbCritical, "登录错误"
txtUserName.SelStart = 0
txtUserName.SelLength = Len(txtUserName.Text)
txtUserName.SetFocus
Exit Sub
End If
rs.Close
rs.Open "select * from password where username='" & strUsername & "' and password='" & strUserPass & "'", cn, adOpenStatic, adLockOptimistic
If rs.EOF Then
MsgBox "密码错误", vbCritical, "登录错误"
txtPassword.SelStart = 0
txtPassword.SelLength = Len(txtPassword.Text)
txtPassword.SetFocus
Exit Sub
End If
rs.Close
MDIForm1.Enabled = True
Unload Me

End Sub
回复
Qthinker 2003-11-07
由于分数有限
我只能提供50'一个问题
望大家不要看不起,实在是小弟分少!
回复
Qthinker 2003-11-07
50'就是50分了
我想学习用RDS和ADO
望大侠帮我用两种方法解决
叩谢
回复
踏平扶桑 2003-11-07
ADO(50')应该是用ado解决给50分吧:)

楼主的问题主要是第一步,98启动后加载登陆程序,这个程序优先级要高,它没结束的时候,不能运行其它程序,但要加载网络协议。要不然就不用检查用户名了:)这个是主要问题
剩下的就简单了一些,连接服务器,发送查询命令,然后服务器回执一个信息,正确的话可以使用机器,不正确执行其它的.
回复
yoki 2003-11-07
'引用Microsof Activex Data Object2.5 Library
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

cn.CursorLocation = adUseClient
cn.Open "Provider=SQLOLEDB;Data Source=servername;User Id=sa;PassWord=****;Initial Catalog=dbname"
rs.Open "select 1 from users where username='" & txtUser.Text & "' and [password]='" & txtPwd.Text & "'", cn
If rs.EOF Then
MsgBox "登录失败,请检查用户名与密码!"
Else
MsgBox "登录成功..."
'..
'..
End If
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
回复
victorycyz 2003-11-07
ADO(50')是什么意思?
回复
相关推荐
发帖

1187

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2003-11-07 02:13
社区公告
暂无公告