如何用VB连接局域网中的SQL2005上的数据库

daisylong 2010-08-24 04:42:52
局域网中有一台主机,假设IP为:192.1.2.10,本机IP:192.1.2.12,主机上有一个SQL2005的数据库,名字叫TTgame,其中一个表叫:dbo_tt_draw,现要实现功能,点击按钮command1连接主机上的这个数据库TTgame中的表dbo_tt_draw,用adodc连接,datagrid显示。
我的代码:
Dim cn3 As New ADODB.Connection
Dim rs3 As New ADODB.Recordset
Set cn3 = New ADODB.Connection
rs3.CursorLocation = adUseClient
cn3.open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=User; Initial Catalog=TTgame;Data Source=192.168.2.10 "
rs3.open "select * from dbo_tt_draw ", cn3, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rs3
运行后无法显示。。。
求正确代码与解释(越详细越好!)
谢谢!
...全文
328 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
daisylong 2010-08-25
  • 打赏
  • 举报
回复
由于昨天主机的忘记关防火墙,今天特意关了用telnet IP 1433连接,已经成功显示,本人的代码也是可以实现的。
2#的写法也是另一种连接方式,我没试,不过看过很多这种方式
6#用的是 MSHFlexGrid1显示吧,我现在用的是datagrid,不过以后会用 MSHFlexGrid1,据说比datagrid强大,谢谢!
8#说的很对,如果前期没有连接也不行。
9#的问题很专业,学习下!
总之谢谢各位!
vbman2003 2010-08-24
  • 打赏
  • 举报
回复
先顶下.....
好象许多人问vb6.0连接SQL server 2005的问题
因为到现在我没用过SQL server 2005,所以没有发言权...但对于ADO用连接器SQL server 2000的字符串去连接SQL server 2005,个人感觉似乎不妥....ADO目前的最终版本是2.8,而SQL server 2005是在ADO2.8以后才发布的,即使用SQL server 2000的字符串或ODBC驱动能连接上,估计并不能完美解决,甚至给你程序带来隐患(只是猜测)...SQL server 2005的最好搭配应该是ADO.NET....在www.connectionstrings.com上找不到ADO连接SQL server 2005的字符串可能就是我这个猜测的最好证明,当然实践才是真理,希望有真正用vb6.0 + SQL server 2005做过工程的网友给点建议,大家学习一下...
饮水需思源 2010-08-24
  • 打赏
  • 举报
回复
为 SQL Server 2005 Express Edition 或 SQL Server 2005 Developer Edition 启用远程连接
必须为要从远程计算机连接到的每个 SQL Server 2005 实例启用远程连接。为此,请按照下列步骤操作:

1. 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。
2. 在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。
3. 在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“远程连接”和“本地连接和远程连接”,单击适用于您的环境的相应协议,然后单击“应用”。

注意:请在接收到以下消息时单击“确定”:
直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。

4. 在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“服务”和“停止”,等待 MSSQLSERVER 服务停止,然后单击“启动”以重新启动 MSSQLSERVER 服务。
这样就可以连接过来了。
shangganyuansu 2010-08-24
  • 打赏
  • 举报
回复
en ! 好东东!!
cnuser1 2010-08-24
  • 打赏
  • 举报
回复
'完整代码如下,提供给您做参考。
Option Explicit
Dim LoadSql As String
Dim ConnSql As String
Dim LoadRs As New ADODB.Recordset
Dim SqlConn As New ADODB.Connection

Private Sub cmdLoadData_Click()
On Error GoTo eNext:
If SqlConn.State = 1 Then SqlConn.Close
ConnSql = "Provider=sqloledb;Data Source=192.1.2.10;Initial Catalog=TTgame;User Id=SA;Password=123456;"
SqlConn.ConnectionString = ConnSql
SqlConn.Open

LoadSql = "SELECT * FROM [TTgame].[dbo].[dbo_tt_draw]"
If LoadRs.State = 1 Then LoadRs.Close
LoadRs.Open LoadSql, SqlConn, adOpenKeyset, adLockOptimistic

If Not LoadRs.EOF Then
Set MSHFlexGrid1.DataSource = LoadRs
Else
'Your function code
End If
Exit Sub
eNext:
MsgBox Err.Description, vbCritical, Err.Number
End Sub

lsh6688 2010-08-24
  • 打赏
  • 举报
回复
你现在系统的管理工具 配置一下odbc 数据源
jhone99 2010-08-24
  • 打赏
  • 举报
回复
这样写更好明白

"PROVIDER=MSDASQL;Driver={SQL Server};Server=服务器ip;uid=sa;pwd=你的密码;database=你的数据库实例名;"
现在还是人类 2010-08-24
  • 打赏
  • 举报
回复
SERVER= 是服务器IP地址或计算机名,本地可以用 SERVER=.
UID= 是登陆账号,我这里是 sa
PWD= 是登陆密码,我这里是 12345
DATABASE= 是数据库名称
现在还是人类 2010-08-24
  • 打赏
  • 举报
回复
Dim conn As New Connection
Dim rs As New Recordset

conn.Open "PROVIDER=MSDASQL;DRIVER={SQL SERVER};" & _
"SERVER=192.168.2.10;UID=sa;PWD=12345;DATABASE=TTgame"
rs.Open "select * from dbo_tt_draw ", conn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rs
jhone99 2010-08-24
  • 打赏
  • 举报
回复
rs3.refresh

1,216

社区成员

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

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