问题描述
各位大神:小弟初学VB2008+SQLServer,遇到了一个奇怪的问题:我用下列语句连接数据库(在我本机上):DimobjConnectionAsNewSqlConnection("server=localhostsqlexpress;database=RSData;userid=sa;password=123456")一切都正常。为了给别人使用,我将语句改成:DimobjConnectionAsNewSqlConnection("server=192.168.128.128sqlexpress;database=RSData;userid=sa;password=123456")仅仅是将localhost改成了本机IP地址,VB2008老是提示我下面的打开语句有问题:objConnection.Open()这是什么原因呢??不可能不认识IP啊!!新手,忘不吝指教!多谢多谢!!
解决方案
解决方案二:
开了广播没有,去服务看看。另外你说的给别人用,确定是局域网吧?
解决方案三:
另外对方是否有权限,要检查一下。需要加到登录和数据库。
解决方案四:
。。。看错了,你用sa登录,检查下你的服务。
解决方案五:
我改成IP地址后,在我自己的电脑上也不能用了!
解决方案六:
检查这个服务
解决方案七:
ImportsSystem.DataImportsSystem.Data.SqlClientPublicClassForm1DimobjConnectionAsNewSqlConnection("server=192.168.128.128sqlexpress;database=RSData;userid=sa;password=123456")DimobjDataAdapterAsNewSqlDataAdapter()DimobjDataSetAsNewDataSet()PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickobjDataSet.Clear()objDataAdapter.SelectCommand=NewSqlCommand()objDataAdapter.SelectCommand.Connection=objConnectionobjDataAdapter.SelectCommand.CommandText="SELECT*FROMNameInfoWHERENameIN(SELECTNameFROMGOBWHEREGOODORBAD='B')"objDataAdapter.SelectCommand.CommandType=CommandType.Textrem下面的这句代码老是出错objConnection.Open()objDataAdapter.Fill(objDataSet,"bjcTable")objConnection.Close()DataGridView1.AutoGenerateColumns=TrueDataGridView1.DataSource=objDataSetDataGridView1.DataMember="bjcTable"EndSubEndClass服务开启了,还是失败……您费心啦!!
解决方案八:
代码其实是在我本机上的虚拟机中写的,应该没有关系吧??
解决方案九:
换成主机名,自动分配的话,IP是不固定。跟代码没关系。局域网你的服务一定要开。
解决方案十:
哦,好的,等我去办公室固定IP地址的电脑上试试!您费心了,多谢多谢!!
解决方案十一:
1.保证服务是开的;2.尝试使用主机名而不是IP;3.如果主机名可以而IP不行,就检查你的端口是否正确,可以按下图设置。
解决方案十二:
引用4楼bijingchun的回复:
谢谢您的热心!是给同局域网中的别人用。关键是:我改成IP地址后,在我自己的电脑上也不能用了!
SQLServer系统的“网络协议配置”中要启用TCP协议(此时需要重启数据库系统)。你的两种连接方法,是两种不同的协议支持的。前者是命名管道,后者是TCP。而SQLServer安装时对于TCP服务默认关闭的。
解决方案十三:
贴出异常的具体错误信息,是找不到主机,还是访问拒绝。
解决方案十四:
引用12楼caozhy的回复:
贴出异常的具体错误信息,是找不到主机,还是访问拒绝。
出现错误的代码是:objConnection.Open()
解决方案十五:
换成主机名成功了没有?可能的情况要一个个排除,不然跟你说都是白说。
解决方案:感谢!!费心了!!在局域网中已经通过!