我似乎无法连接到本地数据库。 每次运行它时,它都会弹出一个空白窗口(空白命令行窗口)。
我想念什么?
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 的连接)
您的 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
我打赌这个应用程序可以工作。 您是否检查过数据库以查看值是否已插入?
空白的命令行窗口很可能是因为您将项目类型设置为 Windows 控制台项目。
也许在 Main 方法的末尾添加一个
Console.WriteLine("No worries!");
。
"ConnectionStrings": {
"DefaultConnection":"Server=DESKTOPK0DSR57\\SQLEXPRESS;Database=item;Trusted_Connection=True;MultipleActiveResultSets=true"},