【问题标题】:Database code no longer works数据库代码不再有效
【发布时间】:2015-09-08 01:06:36
【问题描述】:

这段代码有问题。

string sqlCon = @"Data Source=.\SQLEXPRESS;" +
                @"AttachDbFilename=|DataDirectory|\ChessDatabase.mdf;
                  Integrated Security=True;
                  Connect Timeout=30;
                  User Instance=True";
SqlConnection Con = new SqlConnection(sqlCon);
Con.Open();

同样的代码之前成功运行过一次。 它用于将记录添加到数据库中的数据。现在错误说它无法打开数据库,因为它已经打开了。

有什么想法吗?您还需要哪些其他可能有用的信息?

【问题讨论】:

  • 如果错误提示连接已打开,您无需再次连接,您可以继续运行查询。您应该在查询后关闭与数据库的连接,然后在下一次查询之前重新打开它。
  • 您可能使用服务器资源管理器打开了与同一数据库的连接。在服务器资源管理器中关闭连接,它应该可以工作。
  • 所需的主要信息是您正在使用的特定 DBMS(MS SQL Server?),也许是您正在编码的语言。如果它以前有效而现在无效,那么变了——什么?因为很有可能破损是这种变化的结果。或者,如果不是那个变化,那么大约在同一时间另一个变化。
  • 看起来连接一开始就关闭了。这是错误消息=无法打开用户默认数据库。登录失败。用户“DanielWebb-PC\Daniel Webb”登录失败。 Source=.Net SqlClient Data Provider 这个对我帮助不大我觉得是数据库变了,不是代码。

标签: sql-server database


【解决方案1】:

请试试这个:

string sqlCon = @"Data Source=.\SQLEXPRESS;" +
                @"AttachDbFilename=|DataDirectory|\ChessDatabase.mdf;
                  Integrated Security=True;
                  Connect Timeout=30;
                  User Instance=True";
SqlConnection Con = new SqlConnection(sqlCon);
            if (Con.State == ConnectionState.Closed)
            {
                 Con.Open();
            }

在打开连接之前检查连接是否已经打开或关闭。

【讨论】:

  • 虽然我同意你的回答,但对于 OP 来说,找出数据库已经被意外打开也很重要。一般来说,您不希望有连接飞来飞去;)
  • 看起来连接一开始就关闭了。这是错误消息=无法打开用户默认数据库。登录失败。用户“DanielWebb-PC\Daniel Webb”登录失败。 Source=.Net SqlClient 数据提供者
  • 我已经尝试了上面的代码,但它没有帮助。看起来连接一开始就关闭了。这是错误消息=无法打开用户默认数据库。登录失败。用户“DanielWebb-PC\Daniel Webb”登录失败。 Source=.Net SqlClient 数据提供者。我确实有一个使用相同代码的较小程序,但它只适用于早期版本的数据库。当这个小程序与任何其他数据库一起使用时,我会收到这样的错误。数据库……..无法打开,因为是706版本。本服务器支持655及更早版本
猜你喜欢
  • 1970-01-01
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-31
  • 2013-02-05
  • 2011-07-31
相关资源
最近更新 更多