求助:VB2008连接SQL Server出现的问题

bijingchun 2014-11-01 01:21:25
各位大神:
小弟初学VB2008+SQL Server,遇到了一个奇怪的问题:
我用下列语句连接数据库(在我本机上):
Dim objConnection As New SqlConnection("server=localhost\sqlexpress;database=RSData;user id=sa;password=123456")
一切都正常。
为了给别人使用,我将语句改成:
Dim objConnection As New SqlConnection("server=192.168.128.128\sqlexpress;database=RSData;user id=sa;password=123456")
仅仅是将localhost改成了本机IP地址,VB2008老是提示我下面的打开语句有问题:
objConnection.Open()
这是什么原因呢??不可能不认识IP啊!!
新手,忘不吝指教!多谢多谢!!
...全文
330 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
bijingchun 2014-11-07
  • 打赏
  • 举报
回复
感谢!!费心了!!在局域网中已经通过!
D56233577 2014-11-01
  • 打赏
  • 举报
回复
换成主机名成功了没有?可能的情况要一个个排除,不然跟你说都是白说。
bijingchun 2014-11-01
  • 打赏
  • 举报
回复
引用 12 楼 caozhy 的回复:
贴出异常的具体错误信息,是找不到主机,还是访问拒绝。


出现错误的代码是:objConnection.Open()
threenewbee 2014-11-01
  • 打赏
  • 举报
回复
贴出异常的具体错误信息,是找不到主机,还是访问拒绝。
  • 打赏
  • 举报
回复
引用 4 楼 bijingchun 的回复:
谢谢您的热心! 是给同局域网中的别人用。 关键是:我改成IP地址后,在我自己的电脑上也不能用了!
SQL Server系统的“网络协议配置”中要启用TCP协议(此时需要重启数据库系统)。 你的两种连接方法,是两种不同的协议支持的。前者是命名管道,后者是TCP。而SQL Server安装时对于TCP服务默认关闭的。
D56233577 2014-11-01
  • 打赏
  • 举报
回复
1. 保证服务是开的;
2. 尝试使用主机名而不是IP;
3. 如果主机名可以而IP不行,就检查你的端口是否正确,可以按下图设置。

bijingchun 2014-11-01
  • 打赏
  • 举报
回复
哦,好的,等我去办公室固定IP地址的电脑上试试!您费心了,多谢多谢!!
D56233577 2014-11-01
  • 打赏
  • 举报
回复
换成主机名,自动分配的话,IP是不固定。跟代码没关系。局域网你的服务一定要开。
bijingchun 2014-11-01
  • 打赏
  • 举报
回复
代码其实是在我本机上的虚拟机中写的,应该没有关系吧??
bijingchun 2014-11-01
  • 打赏
  • 举报
回复
这是完整的代码: Imports System.Data Imports System.Data.SqlClient Public Class Form1 Dim objConnection As New SqlConnection("server=192.168.128.128\sqlexpress;database=RSData;user id=sa;password=123456") Dim objDataAdapter As New SqlDataAdapter() Dim objDataSet As New DataSet() Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click objDataSet.Clear() objDataAdapter.SelectCommand = New SqlCommand() objDataAdapter.SelectCommand.Connection = objConnection objDataAdapter.SelectCommand.CommandText = "SELECT * FROM NameInfo WHERE Name IN (SELECT Name FROM GOB WHERE GOODORBAD='B')" objDataAdapter.SelectCommand.CommandType = CommandType.Text rem 下面的这句代码老是出错 objConnection.Open() objDataAdapter.Fill(objDataSet, "bjcTable") objConnection.Close() DataGridView1.AutoGenerateColumns = True DataGridView1.DataSource = objDataSet DataGridView1.DataMember = "bjcTable" End Sub End Class 服务开启了,还是失败…… 您费心啦!!
D56233577 2014-11-01
  • 打赏
  • 举报
回复
检查这个服务

bijingchun 2014-11-01
  • 打赏
  • 举报
回复
谢谢您的热心! 是给同局域网中的别人用。 关键是:我改成IP地址后,在我自己的电脑上也不能用了!
D56233577 2014-11-01
  • 打赏
  • 举报
回复
。。。看错了,你用sa登录,检查下你的服务。
D56233577 2014-11-01
  • 打赏
  • 举报
回复
另外对方是否有权限,要检查一下。需要加到登录和数据库。
D56233577 2014-11-01
  • 打赏
  • 举报
回复
开了广播没有,去服务看看。另外你说的给别人用,确定是局域网吧?

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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