错误提示:在建立与服务器的连接时出错。在连接到SQL SERVER2005时,在默认的设置下SQL Server不允许进行远程连接可能会导致此失败。(provider:命名管道提供程序,error:40-无法打开到sql server的连接)
描述:telnet 127.0.0.1 1433是通的。sql2000的补丁我也打了。程序是用c#2.0写的,我的电脑上装没这个问题,客户的电脑上装总有这个问题。急等!!!!

解决方案 »

  1.   

    到底是sql server2005还是2000.
      

  2.   

    1、如是sql2005 在服务器后面添加\sqlexpress看看是否可以,另外你看看2005的配置中tcp/ip是否启用
    2、sql2000 用户名密码之类都正确吗?
      

  3.   

    去网上搜下问题就可、可以找到。
      这个网站试试:http://jc-dreaming.javaeye.com/blog/524518
      

  4.   

    也许是没有打开混合验证方式。但连接字符串里使用了非Windows身份验证。操作步骤:[开始]-[所有程序]-[Microsoft SQL Server 2005]-[SQL Server Management Studio]-[连接]-[右击服务器]-[属性]-[安全性]-[服务器身份验证],选择混合验证方式。
      

  5.   

    SQL 2000 里有个服务端工具, 在开始菜单里,你配置一下启用命名管道。
      

  6.   

    。(provider:命名管道提供程序,error:40-无法打开到sql server的连接) 
    打开《配置工具》在打开、《SQL Server 外围应用配置器》→打开《服务和链接的外围程序配置》
    然后如图上一样启动了服务就可以了  
      

  7.   

    webconfig里面的数据库连接配置一下,或者数据库的连接不正确,或者将数据库的服务重启一下,你可以登录数据库验证一下,看看数据库能否打开。。
      

  8.   

    用企业管理器可以登录数据库,我的是winform程序。数据库账号是sa
      

  9.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;namespace YinMangageServer.Core
    {
        /// <summary>
        /// DbObject 的摘要说明。
        /// </summary>
        public abstract class DbObject
        {
            protected SqlConnection Connection;
            private string connectionString;
            public DbObject(string newConnectionString)
            {
                connectionString = newConnectionString;
                Connection = new SqlConnection(connectionString);
            }
            /// <summary>
            /// Protected property that exposes the connection string
            /// to inheriting classes. Read-Only.
            /// </summary>
            protected string ConnectionString
            {
                get
                {
                    return connectionString;
                }
            }
            private SqlCommand BuildIntCommand(string storedProcName,
                IDataParameter[] parameters)
            {
                SqlCommand command = BuildQueryCommand(storedProcName, parameters);            command.Parameters.Add(new SqlParameter("ReturnValue",
                    SqlDbType.Int, 4, /* Size */
                    ParameterDirection.ReturnValue, false, /* is nullable */
                    0, /* byte precision */
                    0, /* byte scale */
                    string.Empty, DataRowVersion.Default, null));            return command;
            }
            private SqlCommand BuildQueryCommand(string storedProcName,
                IDataParameter[] parameters)
            {
                SqlCommand command =
                    new SqlCommand(storedProcName, Connection);
                command.CommandType = CommandType.StoredProcedure;            foreach (SqlParameter parameter in parameters)
                {
                    command.Parameters.Add(parameter);
                }            return command;        }
            protected int RunProcedure(string storedProcName,
                IDataParameter[] parameters,
                out int rowsAffected)
            {
                int result;
                Connection.Open();
                SqlCommand command = BuildIntCommand(storedProcName, parameters);
                rowsAffected = command.ExecuteNonQuery();
                result = (int)command.Parameters["ReturnValue"].Value;
                Connection.Close();            return result;
            }
            protected SqlDataReader RunProcedure(string storedProcName,
                IDataParameter[] parameters)
            {
                SqlDataReader returnReader;
                Connection.Open();
                SqlCommand command = BuildQueryCommand(storedProcName, parameters);
                command.CommandType = CommandType.StoredProcedure;            returnReader = command.ExecuteReader(CommandBehavior.CloseConnection);
                return returnReader;
            }
            protected DataSet RunProcedure(string storedProcName,
                IDataParameter[] parameters,
                string tableName)
            {
                DataSet dataSet = new DataSet();
                Connection.Open();
                SqlDataAdapter sqlDA = new SqlDataAdapter();
                sqlDA.SelectCommand = BuildQueryCommand(storedProcName, parameters);
                sqlDA.Fill(dataSet, tableName);
                Connection.Close();
                return dataSet;
            }
            protected void RunProcedure(string storedProcName,
                IDataParameter[] parameters,
                DataSet dataSet,
                string tableName)
            {
                Connection.Open();
                SqlDataAdapter sqlDA = new SqlDataAdapter();
                sqlDA.SelectCommand = BuildIntCommand(storedProcName, parameters);
                sqlDA.Fill(dataSet, tableName);
                Connection.Close();
            }
        }
    }-------
    class ModuleConfig
        {
            public static string GetSettings()
            {            //存储数据库配置信息的文件地址是当前目录
                string filePath = Environment.CurrentDirectory + "/DbInfo.txt";
                StreamReader sr = new StreamReader(filePath);
                string s1 = "server=" + sr.ReadLine() + ";database=YinDb;uid=" + sr.ReadLine() + ";pwd=" + sr.ReadLine() + ";";
                return s1;
            }
        }
      

  10.   

    1、用查询分析器采用SQL验证方法看看能不能连上
    2、打开服务器配置管理器看看TCP/IP协议设置的有没有问题
    3、检查端口是不是默认的1433
    4、检查防火墙
      

  11.   

                string s1 = "server=" + sr.ReadLine() + ";database=YinDb;uid=" + sr.ReadLine() + ";pwd=" + sr.ReadLine() + ";";
                return s1; s1处设置断点,看看有没有其他乱七八糟的字符
      

  12.   

    你的SQL2000是不是也装在你的机子上面啊
      

  13.   

    楼主你的数据库连接字符串错误,本地开发应该是使用的VS自带的数据库,VS自带的数据库地址不是单纯的IP地址,后面有\SQLEXPRESS的,而客户那边的SQLSERVER2000是没有后缀的,请仔细检查数据库连接字符串。
      

  14.   

    可能是连接字符串出错了
    连不上用
    System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources()
    遍历局域网的数据库,取Server字段,然后让用户选一个吧
      

  15.   

    检查一下
    1。服务器是否启用TCP/IP协议了?
    2。启用TCP/IP协议之后,其端口号是否是1433(有时候系统不会自动设置的,需要手动设置)
      

  16.   

    身份认证是什么?如果是windows认证是不是会连不上的。我记得我JDBC连的时候就因为这个。用混合模式就可以了。检查一下你的数据库连接文件吧。
    ps。服务器开了没啊
      

  17.   

    class ModuleConfig 
        { 
            public static string GetSettings() 
            {             //存储数据库配置信息的文件地址是当前目录 
                string filePath = Environment.CurrentDirectory + "/DbInfo.txt"; 
                StreamReader sr = new StreamReader(filePath); 
                string s1 = "server=" + sr.ReadLine() + ";database=YinDb;uid=" + sr.ReadLine() + ";pwd=" + sr.ReadLine() + ";connect timeout=30"; 
                return s1; 
            } 
        }
    试试,可能他那的配置不好,需要一点延时connect timeout=30