【问题标题】:Connection string for SQL Server ( local database )SQL Server(本地数据库)的连接字符串
【发布时间】:2019-04-24 12:06:21
【问题描述】:

我在 Visual Studio 中的应用程序中添加了一个本地数据库:

database

我需要它的连接字符串 - 这里是:

SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=127.0.0.1.;" +
                        "Initial Catalog=Filter;" +
                        "Integrated Security=SSPI;";

conn.Open();

当我运行该代码块时,整个 UI 线程都会停止,就像无限循环一样。我的连接字符串有什么问题?

我正在使用 Windows 窗体、C#、.NET Framework 4.5.1 版

【问题讨论】:

  • 从屏幕截图来看,您似乎正在尝试连接到数据库文件 (.mdf) 而不是服务器实例。如果Data Source=<yourcomputername> 不起作用,请尝试将路径放入 mdf 文件。例如。 Data Source=C:\Data\Filters.mdf。我猜测UI线程停止的原因是因为默认的连接超时时间是30秒,所以在.net抛出异常之前连接有30秒的响应时间。

标签: c# sql-server winforms connection-string


【解决方案1】:

你的部分问题是你有一个尾随的'。'在您的 IP 地址中。像这样删除它:

"Data Source=127.0.0.1;" +
"Initial Catalog=Filter;" +
"Integrated Security=SSPI;";

另外,我强烈建议您将连接对象包装在这样的 using 语句中:

using (SqlConnection conn = new SqlConnection())
{ 
   conn.ConnectionString =
   "Data Source=127.0.0.1.;" +
   "Initial Catalog=Filter;" +
   "Integrated Security=SSPI;";

    conn.Open();
}

最后,在一个字符串中定义你的连接,并在实例化它时将它传递给你的SqlConnection 对象,如下所示:

string sqlConnection = "Data Source=127.0.0.1;Initial Catalog=Filter;Integrated Security=SSPI;"

using (SqlConnection conn = new SqlConnection(sqlConnection)
{
   conn.Open();
}

这种方法为您做了几件事:

  1. 它使您的代码非常非常更易于阅读和清洁。
  2. 它确保您的连接对象将由Dispose 处理,即使在using 块中抛出异常。
  3. 早起只是一个好习惯。

更多关于SqlConnectionhere,更多关于using的信息可以在here找到。

【讨论】:

  • 请参阅上面的评论,在您的原始问题中。您是否指向正确的(或任何).mdf 文件?
【解决方案2】:

删除 IP 地址的最后一个点。

"Data Source=127.0.0.1.;" +   

应该是:

"Data Source=127.0.0.1;" +

【讨论】:

  • 确保 sql server 已启动并正在运行,并且您可以使用带有 SSMS 的 windows 身份验证连接到数据库。如果可行,请参阅connectionstrings.com/sql-server 了解正确的语法
猜你喜欢
  • 1970-01-01
  • 2015-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多