none
《C#入门经典》里第28章介绍ADO.NET的第一个例子我无法连接数据库,提示在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错) RRS feed

  • 问题

  • 首先,我提前已经运行了Sql server了,我用的不是书中的例子里的SQL express,我用的数据库是SQL server 2008 developer,我修改了Data Source,但还是连不上,按F5有一个未处理SqlException提示:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)。
    主要是@"Data Source=(local)\PC-200909192100;"这一句不知怎么写,是不是这一句写错了,才连不上的?PC-200909192100是我的vs2008的服务器名称。我把代码附上,没有错误,大牛多多指教。
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    
    namespace DataReading
    {
        class Program
        {
            static void Main(string[] args)
            {
                SqlConnection thisConnection = new SqlConnection(
                    @"Data Source=(local)\PC-200909192100;" +
                    @"AttachDbFilename='C:\SQL Server 2000 Sample Databases\NORTHWND.MDF';" +
                    @"Integrated Security=True;Connect Timeout=30;User Instance=True");
                thisConnection.Open();
                SqlCommand thisCommand = thisConnection.CreateCommand();
                thisCommand.CommandText = "SELECT CustomerID,CustomerName from Customers";
                SqlDataReader thisReader = thisCommand.ExecuteReader();
                while (thisReader.Read())
                {
                    Console.WriteLine("\t{0}\t{1}", thisReader["CustomerID"], thisReader["CustomerName"]);
                }
                Console.WriteLine("Press Enter to Continue...");
                Console.ReadLine();
    
            }
        }
    }
    
    • 已移动 Sheng Jiang 蒋晟 2010年2月25日 20:42 SQL Server (发件人:ADO.NET 与 LINQ)
    2010年2月16日 13:36

答案

  • 如果是Express以外的版本~改成(local)试试
    • 已标记为答案 Mog Liang 2010年2月23日 5:35
    2010年2月16日 16:48
  • 你好。

    把实例名改为计算机的IP试试。比如

    Data Source=192.168.1.15(计算机IP)或者Data Source=.  或者Data Source=local

    还有你的SQL Server 已配置为允许远程连接了没有?如果没有则按照以下方法设置。

    解决方法:开始->>SQLServer2005->>配置工具->>SQLServer外围应用配置器->>

    服务和外围连接的应用配置器->>点击"远程连接"->>本地连接和远程连接->>

    同时使用TCP/IP和named Pipes->>点"确定"->>重启SQLserver服务

    备注:这是 2005的设置方法,2008的设置应该跟2005的差不多。

    希望对你有所帮助



    我们要把爱心传递给更多需要帮助的人。
    微软(黑龙江).Net俱乐部:http://hlj.cnblogs.com
    博客:http://terryfeng.cnblogs.com
    微博:http://t.sina.com.cn/terryfeng
    个人:http://www.terryfeng.com
    • 已标记为答案 Mog Liang 2010年2月23日 5:35
    2010年2月17日 3:23

全部回复

  • 如果是Express以外的版本~改成(local)试试
    • 已标记为答案 Mog Liang 2010年2月23日 5:35
    2010年2月16日 16:48
  • 谢谢,祝虎年吉祥
    2010年2月17日 3:16
  • 你好。

    把实例名改为计算机的IP试试。比如

    Data Source=192.168.1.15(计算机IP)或者Data Source=.  或者Data Source=local

    还有你的SQL Server 已配置为允许远程连接了没有?如果没有则按照以下方法设置。

    解决方法:开始->>SQLServer2005->>配置工具->>SQLServer外围应用配置器->>

    服务和外围连接的应用配置器->>点击"远程连接"->>本地连接和远程连接->>

    同时使用TCP/IP和named Pipes->>点"确定"->>重启SQLserver服务

    备注:这是 2005的设置方法,2008的设置应该跟2005的差不多。

    希望对你有所帮助



    我们要把爱心传递给更多需要帮助的人。
    微软(黑龙江).Net俱乐部:http://hlj.cnblogs.com
    博客:http://terryfeng.cnblogs.com
    微博:http://t.sina.com.cn/terryfeng
    个人:http://www.terryfeng.com
    • 已标记为答案 Mog Liang 2010年2月23日 5:35
    2010年2月17日 3:23