【问题标题】:Trouble connecting to local SQL Server database无法连接到本地 SQL Server 数据库
【发布时间】:2019-01-15 18:13:53
【问题描述】:

只是想在 Visual Studio 中做一个简单的本地数据库连接到 Microsoft SQL Server。试图弄清楚为什么它没有连接。我为此专门创建了一个用户,并拥有正确的用户名和密码。我故意省略了用户 ID 和密码。似乎在我的连接字符串中抛出错误,我做错了什么?

System.Data.SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)

我的代码:

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Assetmvc
{
    public partial class SearchPage : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // Connect to the db
            string connStr = "Server=localhost;Database=AssetTracking;User Id=;Password=; ";
            SqlConnection conn = new SqlConnection(connStr);
            conn.Open();

            // Create a command
            SqlCommand cmd = new SqlCommand("SELECT [EmployeeId],[FirstName],[LastName],[HiredDate],[FiredDate],[CurrentItems],[SupervisorId],[SupervisorName] From [dbo].Employees");
            cmd.CommandType = System.Data.CommandType.Text;
            cmd.Connection = conn;

            string temp = "";

            // Read from database
            SqlDataReader reader = cmd.ExecuteReader();

            while(reader.Read())
            {
                temp += reader["EmployeeId"].ToString();
                temp += reader["FirstName"].ToString();
                temp += reader["LastName"].ToString();
                temp += reader["HiredDate"].ToString();
                temp += reader["FiredDate"].ToString();
                temp += reader["CurrentItems"].ToString();
                temp += reader["SupervisorId"].ToString();
                temp += reader["SupervisorName"].ToString();
                temp += 

                temp += "<br/>";
            }

            conn.Close();

            lbl_test.Text = temp; 
        }
    }
}

【问题讨论】:

  • 错误是什么?
  • System.Data.SqlClient.SqlException: '建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)' Win32Exception
  • 您使用的是 SQLExpress 版本吗?
  • 编辑:实际上是的,看起来我正在使用快速版本
  • 你如何连接到你的数据库?使用 Windows 身份验证?

标签: c# sql-server visual-studio ssms sql-server-express


【解决方案1】:

如果您使用的是 SQL Server Express 并在安装时使用了所有默认值,那么您将拥有一个名为 SQLEXPRESS 的 SQL Server 命名实例 - 并且因此,您需要使用此连接字符串:

string connStr = "Server=localhost\\SQLEXPRESS;Database=AssetTracking;User Id=;Password=; ";

请注意,您需要使用localhost\SQLEXPRESS 连接到实例名称为SQLEXRPESS命名实例

【讨论】:

【解决方案2】:

经过一整天的故障排除后,本指南提供了很大帮助。

https://success.scribesoft.com/s/article/Named-Pipes-Provider-Error-40

虽然这样做之后,我在 Sql 服务器资源管理器中单击我的服务器后,最终只使用属性框中提供的连接字符串。

我要感谢所有没有投反对票并实际提供帮助的人,我真的很感激。我将 Marc_S 标记为答案,但想为其他可能阅读此内容的人添加此内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多