C# 和 SQL Server 连接

问题描述 投票:0回答:3

我似乎无法连接到本地数据库。 每次运行它时,它都会弹出一个空白窗口(空白命令行窗口)。

我想念什么?

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;

namespace dbtest1
{
    class Program
    {
        static void Main(string[] args)
        {
            string myConnectionString = "Initial Catalog=myDB;Data Source=localhost;Integrated Security=SSPI;";
            SqlConnection myConnection = new SqlConnection(myConnectionString);
            string myInsertQuery = "INSERT INTO tts (min, max, average, lh, stdev, main_id) Values(5,5,5,'ASU',5,55)";
            SqlCommand myCommand = new SqlCommand(myInsertQuery);
            myCommand.Connection = myConnection;
            myConnection.Open();
            myCommand.ExecuteNonQuery();
            myCommand.Connection.Close();
        }
    }
}

当我运行调试时,它给我错误

myConnection.Open();

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

.net sql-server ado.net connection-string sqlclient
3个回答
3
投票

您的 SQL Server 未配置为通过 TCP/IP 进行通信(这就是

localhost
的含义)

您可以更改连接字符串以使用

(local)
而不是
localhost
(注意:括号很重要。)像这样:

Data Source=(local);

您可以将 SQL Server 配置为接受 TCP/IP 连接。

打开 SQL Server 配置管理器 并导航到 SQL Server 网络配置 -->

的协议

在右侧,您将看到协议列表,例如共享内存、命名管道、TCP/IP 等。确保 TCP/IP 已打开。 (右键单击并选择“启用”)

您在其他地方提到您正在使用 SQL Server Express,在这种情况下,您的数据源还必须包含实例名称 SQLEXPRESS,如下所示:

Data Source=localhost\SQLEXPRESS

1
投票

我打赌这个应用程序可以工作。 您是否检查过数据库以查看值是否已插入?

空白的命令行窗口很可能是因为您将项目类型设置为 Windows 控制台项目。

也许在 Main 方法的末尾添加一个

Console.WriteLine("No worries!");


0
投票
"ConnectionStrings": {
  "DefaultConnection":"Server=DESKTOPK0DSR57\\SQLEXPRESS;Database=item;Trusted_Connection=True;MultipleActiveResultSets=true"},
© www.soinside.com 2019 - 2024. All rights reserved.