VB应用ADO连接数据库的问题

pandewei 2006-04-30 08:12:56
我现在要做一个关于数据仓库的小东西,连接数据仓库的部分用的是ADO MD(已完成),现在要一个系统登陆的窗口,找了好多都是ODBC连接数据库的,我想用ADO连接数据库,就是一个简单的登陆窗口就好了,在网上找了好多关于ADO的介绍,都不行,我的数据库用的是混合验证的方式,请问怎么编写登陆窗口这个部分的内容,希望高手帮忙,我知道这个部分代码不多的,可是就是连接不通数据库,谢谢了先
...全文
448 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjb_dl 2006-05-01
  • 打赏
  • 举报
回复
看这种写法象.NET里的,RDO以前好象也是这样的,记不太清了,反正这种连接串的格式是固定的,记着就行了,以后考贝就行了.
写法参照前面几个回贴就一定OK了,或看看MSDN.这种东西不用太细研究,以后自然就明白!
AIGPTchina 2006-05-01
  • 打赏
  • 举报
回复
加个qq:278359100
pandewei 2006-05-01
  • 打赏
  • 举报
回复
我是看了这个,然后写的我的那个,请问下面的是.NET的吗,我没接触过.NET,VB也是才看的,不是很清楚,呵呵,麻烦大家了,^_^



ConnectionString、ConnectionTimeout 和 State 属性范例
该范例说明了使用 ConnectionString 属性打开 Connection 对象的不同方法。同时还使用 ConnectionTimeout 属性设置连接超时时间,并使用 State 属性检查连接的状态。该过程运行时需要 GetState 函数。

Public Sub ConnectionStringX()

Dim cnn1 As ADODB.Connection
Dim cnn2 As ADODB.Connection
Dim cnn3 As ADODB.Connection
Dim cnn4 As ADODB.Connection

' 不使用数据源名 (DSN) 打开连接。
Set cnn1 = New ADODB.Connection
cnn1.ConnectionString = "driver={SQL Server};" & _
"server=bigsmile;uid=sa;pwd=pwd;database=pubs"
cnn1.ConnectionTimeout = 30
cnn1.Open

' 使用 DSN 和 ODBC 标记打开连接。
Set cnn2 = New ADODB.Connection
cnn2.ConnectionString = "DSN=Pubs;UID=sa;PWD=pwd;"
cnn2.Open

' 使用 DSN 和 OLE DB 标记打开连接。
Set cnn3 = New ADODB.Connection
cnn3.ConnectionString = "Data Source=Pubs;User ID=sa;Password=pwd;"
cnn3.Open

' 使用 DSN 和单个参数而非连接字符串打开连接。
Set cnn4 = New ADODB.Connection
cnn4.Open "Pubs", "sa", "pwd"

' 显示连接的状态。
MsgBox "cnn1 state: " & GetState(cnn1.State) & vbCr & _
"cnn2 state: " & GetState(cnn2.State) & vbCr & _
"cnn3 state: " & GetState(cnn3.State) & vbCr & _
"cnn4 state: " & GetState(cnn4.State)

cnn4.Close
cnn3.Close
cnn2.Close
cnn1.Close

End Sub

Public Function GetState(intState As Integer) As String

Select Case intState
Case adStateClosed
GetState = "adStateClosed"
Case adStateOpen
GetState = "adStateOpen"
End Select

End Function
pandewei 2006-05-01
  • 打赏
  • 举报
回复
请问楼上各位,我改了连接的那句为
conn.ConnectionString = "Driver={sql server};server=PANDEWEI;uid=;pwd=;database=Northwind_DW"
就是用户名和密码为空,就能连接成功了,请问这个是怎么回事啊,听楼上的说我写的那个是.net的,呵呵,我也不是很清楚,谁能帮忙解释下,为什么都写为空就行了啊??
mylzw 2006-05-01
  • 打赏
  • 举报
回复
潘德伟是谁?
mylzw 2006-05-01
  • 打赏
  • 举报
回复
ADO的连接字符串是由 ; 号进行分割的一些键值对,每个键值对含义如下:
Provider=SQLOLEDB.1; 代表数据提供者是基于SQL的OLEDB。
Integrated Security=SSPI; 代表启用完整安全性验证,即基于Windows登陆的验证。
Initial Catalog=master; 初始数据库为master数据库
Data Source=localhost; 数据库服务器来源为本机默认实例


ps:楼主用的基于odbc的连接字符串太老土了,-_-!!! 。建议采用这些基于OLEDB的。
mylzw 2006-05-01
  • 打赏
  • 举报
回复
数据库连接字符串:

Access
无密码连接
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;"
有密码连接
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Jet OLEDB:Database Password=***"

SQL-Server
用户验证
"Provider=SQLOLEDB.1;User ID=sa;Password=***;Initial Catalog=master;Data Source=localhost"

完整安全性验证
"Provider=SQLOLEDB.1;Integrated Security=SSPI;Initial Catalog=master;Data Source=localhost"

---------------------------------------------------
基于楼主的情况,建议使用以下字符串连接:
"Provider=SQLOLEDB.1;User ID=sa;Password='';Initial Catalog=Northwind_DW;Data Source=."

Data Source=. 代表的是本机默认实例
相当于在楼主机器上的Data Source=PANDEWEI
用.的话,就可以在任意安装sql server的机器上运行,而不必局限于PANDEWEI这个机器了。

另外还可以使用Data Source=localhost,localhost等于127.0.0.1,代表的是本机ip地址,如果sql server服务器在网络上,可以换成网络计算机的ip地址。
Snoworld 2006-04-30
  • 打赏
  • 举报
回复
同意楼上
sjb_dl 2006-04-30
  • 打赏
  • 举报
回复
conn.ConnectionString = "Driver={sql server};server=PANDEWEI;uid=sa;pwd=;database=Northwind_DW"
你这是.NET里的ADO连接写法吧?

我这个是(ADO2.5连接MSSQL2000):
conn.ConnectionString = "Provider=SQLOLEDB.1;Password=" & SPW_Stock & ";Persist Security Info=True;User ID=" & sUser_Stock & ";Initial Catalog=" & sDB_Stock & ";Data Source=" & sSer_Stock
实在不行,可以利用VB里的ADC控件,建个连接,把连接字符串考出来,和上样的格式一样,改改就行了,再把ADC控件删了.
pandewei 2006-04-30
  • 打赏
  • 举报
回复
Private Sub cmdOK_Click()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim m As Integer

Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset


conn.ConnectionString = "Driver={sql server};server=PANDEWEI;uid=sa;pwd=;database=Northwind_DW"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select username,password from login where username='" & Trim(txtUserName.Text) & "' And password='" & Trim(txtPassword.Text) & "'", conn, adOpenStatic, adLockReadOnly, adCmdText
If rs.EOF = True And rs.BOF Then
m = MsgBox("请重新登录", vbExclamation)
txtUserName.Text = ""
txtPassword.Text = ""
txtUserName.SetFocus
Else
Form1.Hide
End If
rs.Close

End Sub



上面是我自己写的,我的数据库是混合验证方式,运行程序总是显示未获得信任,主要是连接数据库那句话怎么写啊

1,216

社区成员

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

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