conn.Open()报错。

liugangsys 2009-09-29 05:46:03
这是C#代码:
//string connectstring = @"server=6783051B8EBD4AD\sqlexpress;database=logistics;user id=sa;password=sa;";
string connectstring = @"server=192.168.0.232;database=logistics;User ID=sa;Password=sa" ;
SqlConnection conn = new SqlConnection(connectstring);
SqlDataAdapter adapter = null;
DataSet ds = null;

conn.Open();
adapter = new SqlDataAdapter("select * from logistics_bill",conn);
ds = new DataSet();
adapter.Fill(ds);
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
调试时
conn.open()报错,是怎么回事呢?

在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
...全文
2537 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuliaoid 2009-09-29
  • 打赏
  • 举报
回复
我知道的最简单的办法就是把 PROVIDER=SQLOLEDB; 这段去掉,后面保留,试试
24K純帥 2009-09-29
  • 打赏
  • 举报
回复
up..看看web.config里面,Data Source=.\SQLEXPRESS
yeaicc 2009-09-29
  • 打赏
  • 举报
回复
打开SQL Server Configuration Manager后,选择SQL Server 2005 网络配置

再选中想要设置的数据库引擎名,之后在右侧找到TCP/IP,右键查看属性,

点击IP地址,在IP1、IP2、IPALL中设置TCP端口为1433

确定,在确定,然后右键TCP/IP,选择启用,然后重启服务,就行了。


如果还不行,请发邮件yeaicc@live.cn
amywm1 2009-09-29
  • 打赏
  • 举报
回复
1. 数据库引擎没有启动。

有两种启动方式:

(1)开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",在打开的界面中找到Database Engine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,不要为手动,否则下次开机时又要手动启动;

(2)可打开:开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager,选中SQL Server 2005服务中SQL Server(MSSQLSERVER) ,并单击工具栏中的"启动服务"按钮把服务状态改为启动;

使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,这时就要查看"SQL Server 2005配置管理器"中的SQL Server 2005网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了.

2. 是否已经允许远程连接。

这个部分可以简单的分为4个方面,分别是在 SQL Server上启用远程连接、启用SQL Server 浏览服务、在Windows 防火墙中为SQL Server 2005 创建例外和在Windows 防火墙中为“SQLBrowser”创建例外。下面是几个具体的操作方式,摘自MSDN,个人觉得文章的黑体部分应当特别的一起我们的注意。


在SQLServer 实例上启用远程连接
1.指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器”
2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
3.然后单击展开“数据库引擎”, 选中“远程连接”,在右边选中“本地连接和远程连接”,
再选择要使用的协议,( 这个地方应当启用TCP/IP 和命名管道服务!)单击“应用”,您会看到下消息:
“直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。”,单击“确定”按钮返回
4.展开“数据库引擎”, 选中“服务”,在右边单击“停止”,等到 MSSQLSERVER 服务停止,
然后单击“启动”,重新启动MSSQLSERVER 服务。

启用 SQLServer 浏览器服务
1.指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器”
2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
3.然后单击展开“SQL Server Browser”, 选中“服务”,在右边“启动类型”选择“自动”,
再单击“启动”,单击“确定”按钮返回

在Windows 防火墙中为“SQL Server 2005”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
2.在“添加程序窗口”中单击“浏览”
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\ MSSQL.1 \MSSQL\Binn\sqlservr.exe”,
单击“确定”返回
注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。 MSSQL.1 是占位符,对应数据库实例ID。
4.对每个需要打开远程访问的SQL Server 2005 实例,重复步骤 1 至 3。

在Windows 防火墙中为“SQLBrowser”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
2.在“添加程序窗口”中单击“浏览”
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe”,
单击“确定”返回
注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。
ginni215 2009-09-29
  • 打赏
  • 举报
回复
连接语句似乎没没有错啊,要不用SQL客户段连接一下试一试,如果这个用户密码没错的话,那就奇怪了~~
我都是用这个:
server=192.168.0.232;database=logistics;uid=sa;pwd=sa
liugangsys 2009-09-29
  • 打赏
  • 举报
回复
可以说得详细一点,谢谢了。
鸭梨山大帝 2009-09-29
  • 打赏
  • 举报
回复
提示很清楚了,设置SQL Server 允许远程连接
如果是本机调试,直接用LOCALHOST

"在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)"
liugangsys 2009-09-29
  • 打赏
  • 举报
回复
用GRIDVIEW 数据源,测试连接的时候通不过
liugangsys 2009-09-29
  • 打赏
  • 举报
回复
SQL SERVER2005 外围应用配置器--服务和连接外围应用配置器--远程连接--本地连接和远程连接--同时使用TCP/IP和named pipes

是这样设置的。
QQ10149077 2009-09-29
  • 打赏
  • 举报
回复
点菜单数据,添加新数据源,建立好链接后,看看链接字符串是什么
lirenniao 2009-09-29
  • 打赏
  • 举报
回复
看下你的 2005的连接设置吧
liugangsys 2009-09-29
  • 打赏
  • 举报
回复
不支持关键字: “provider”。

client 是2005的
数据库是2000的。
weifei_tlp 2009-09-29
  • 打赏
  • 举报
回复
是05的数据库吗?
那就要加上\sqlexpress
Allen_Seh 2009-09-29
  • 打赏
  • 举报
回复
用这种方法吧!
con.open "PROVIDER=SQLOLEDB;DATA Source=SQLservername;UID=sa;PWD=password;database=databasename
用oledb读取dbf文件报错--“外部表不是预期的格式” 我的代码如下 string ole_connstring=String.Empty; ole_connstring = @"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBASE IV;Data Source="+FilePath; OleDbConnection ole_conn = new OleDbConnection(ole_connstring); ole_conn.Open(); string insertsql="Insert into ["+tableName+"] (.......; OleDbCommand da=new OleDbCommand(insertsql,ole_conn); da.ExecuteNonQuery(); DBF版本问题,用VFP9的OLEDB即可 方法一: 进入VFP USE TT COPY TO NEWTT TYPE FOX2X 此方法是把表的文件版本转为新的VFP文件版本解决版本问题。 方法二: 升级JET 引擎到SP8,安装MDAC 2.8,到MS的网站去找 1、VFP9的驱动是最新的,各种版本的DBF均可读出; 2、你的连接字串是用JET的引擎,故要升级JET及MDAC; 3、所需文件在MS的网站均有下载。 方法三: 安装vfpoledb.exe(VFP9的OLEDB),在项目中引用Microsoft OLE DB Provider for FoxPro 7.0 Type Library 1.0,然后使用如下代码: OleDbConnection con = new OleDbConnection("Provider=VFPOLEDB.1;Data Source=D:\\2006工程\\南京建设质量监督站\\资料;Collating Sequence=MACHINE"); con.Open(); DataTable dtQY=new DataTable(); OleDbDataAdapter adapt=new OleDbDataAdapter(); adapt.MissingSchemaAction=MissingSchemaAction.AddWithKey; adapt.SelectCommand = new OleDbCommand("select * from 200512.DBF",con); adapt.Fill(dtQY); adapt.Dispose(); DataView dvQY = dtQY.DefaultView; dtQY.Dispose(); con.Close();

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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