【问题标题】:Connecting to SQL Server in Visual C#在 Visual C# 中连接到 SQL Server
【发布时间】:2014-10-21 00:45:14
【问题描述】:

我将展示我正在使用的代码,但我无法通过 Visual C# 连接到 SQL Server。我已经安装了 C# 包中的内容,但一直收到此错误:

System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常

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

我不知道如何连接到服务器。我使用的是 Windows 8、SQL Sever 2012 (Visual Studio 2012),如果我在顶部工具栏中进行连接,我使用(本地)、localhost 还是我的 IP 地址都没有关系。我无法弄清楚这一点,它让我发疯!这是我的代码,如果有帮助的话。

private void btnSave_Click(object sender, EventArgs e)
{
    System.Data.SqlClient.SqlConnection sqlConnection1 =
         new System.Data.SqlClient.SqlConnection("Server=(local);Database=Database1DataSet;Trusted_Connection=True;");

    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.CommandText = "INSERT VALUES (id, Medname, MedDose, MedAm, MedNoon, MedEve, MedNight, MedPRN, MedOther) VALUES (1, 'Clonazepam', '2mg', 'true', 'true', 'false', 'true', 'true', 'false')";
    cmd.Connection = sqlConnection1;

    sqlConnection1.Open();
    cmd.ExecuteNonQuery();
    sqlConnection1.Close();
}

非常感谢。这是我第一次通过 Visual Studio 使用 SQL Server。

【问题讨论】:

  • 您是否通过服务和/或任务管理器验证了 SQL Server 已实际安装和运行?我假设您所说的“SQL Sever 2012 (Visual Studio 2012)”是指您在安装 Visual Studio 时选择了安装“SQL Server Express LocalDB”的选项,对吧?这里的问题是 SQL Server 要么未安装、已安装但未运行,要么未配置为通过命名管道进行通信。
  • 这个问题被问了很多次,而且方式也很多。
  • 检查您在 Sql Server 配置管理器中的客户端协议设置,并确认启用了正确的设置(如果您确定在您的计算机上这样做是安全的,请启用所有设置)。 (在确认@scrutzky 首先说的话之后)
  • 实际上,如果这是SQL Server Express LocalDB,服务列表中可能不会有条目。在 Visual Studio 中,转到 VIEW 菜单并选择 SQL Server Object Explorer。该列表中有任何内容吗?另外,如果是LocalDB,连接字符串中的“server”更像是“(localdb)\V11”或“(localdb)\Projects”。

标签: sql sql-server database visual-studio-2012


【解决方案1】:

如果您在 Visual Studio 2012 安装过程中安装了 SQL Server,那么它会安装 SQL Server Express LocalDB。 LocalDB 非常轻量级,没有持续运行的服务。如果您在安装 Visual Studio 时确实安装了 LocalDB,您应该能够通过转到 Visual Studio 中的 View 菜单并选择 SQL Server Object Explorer 来查看“实例” .应该有一个用于“SQL Server”的文件夹(可以这么说)并展开它应该向您展示以下内容:

(localdb)\V11

(localdb)\Projects

无论该值是什么,这就是您在连接字符串中为“server=”指定的值。所以,你的连接字符串应该看起来更像这样(由于反斜杠,你应该在字符串前面加上@):

@"Server=(localdb)\V11;Database=Database1DataSet;Trusted_Connection=True;"

此外,当您在 Visual Studio 中创建新项目时,它应该在 Project PropertiesDebug 选项卡中预先填充正确的连接字符串。

编辑:
此外,您可以在以下位置找到实例名称,因为每个实例都是一个子文件夹:

C:\Users\{YourUserName}\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances

【讨论】:

  • 您好,谢谢。当我使用工具栏中的 SQL 设置时,我得到了这一点。我会试试看。我目前正在从 Microsoft 站点安装 SQL Server 2012。我需要在 (localdb) 之后放置两个 \\
  • @sandorfalot:我很困惑。当你玩什么 SQL 设置时,你得到了什么?您要安装什么 SQL Server?表达?你也在安装 Express LocalDB 吗?你是什​​么意思你在“项目”下出现错误?我将在答案中添加一些内容以帮助查找实例名称。
  • 很抱歉给您带来了困惑。我已经安装了 SQL Express LocalDB,它当前连接到数据库但要求输入用户名和密码。所以我已经修复了主要部分 - 我可以连接到数据库。
  • @sandorfalot :我刚刚再次更新了我的答案,说明为什么必须使用两个反斜杠。意思是,在连接字符串前面加上@ 可能会更好。
  • 谢谢,我会的。它现在要求我输入用户名和密码,我不知道该使用什么。我正在使用 Windows 身份验证,但它不会接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-28
  • 2021-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多