我似乎无法连接到本地数据库。每次运行它时,它都会弹出一个空白窗口(空白命令行窗口)。
我想念什么?
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 Confuguration Manager并导航到SQL Server Network Configuration-->协议
在右侧,您将看到协议列表,如共享内存、命名管道、TCP/IP等。请确保TCP/IP已打开。(右键单击并选择"启用")
您在其他地方提到您正在使用SQLServerExpress,在这种情况下,您的数据源还必须包括实例名称SQLEXPRESS,如下所示:
Data Source=localhostSQLEXPRESS
我打赌这个应用程序能正常工作。您是否检查了数据库以查看是否插入了值?
空白的命令行窗口很可能是因为您已将项目类型设置为windows控制台项目。
也许可以在Main方法的末尾添加一个Console.WriteLine("No worries!");
。