2015-09-08 2 views
3

У меня возникла проблема с этим фрагментом кода.Код базы данных больше не работает

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(); 

Этот же бит кода работал успешно один раз раньше. Он использовался для добавления записей к данным в базу данных. Теперь ошибка говорит о том, что она не может открыть базу данных, потому что она уже открыта.

Любые идеи? Какая еще информация вам нужна, что может быть полезно?

+0

Если ошибка говорит о том, что соединение уже открыто, вам не нужно снова подключаться, вы можете продолжить свой запрос. Вы должны закрыть соединение с базой данных после запроса, а затем повторно открыть его перед следующим запросом. – mechenbier

+0

Возможно, вы открыли соединение с той же базой данных с помощью Server explorer. Закройте соединение в проводнике сервера, и оно должно работать. – Harsh

+0

Основная необходимая информация - это конкретная СУБД (MS SQL Server?), Которую вы используете, и, возможно, язык, на котором вы кодируете. Если он работал раньше и не работает, что-то изменилось - что? Потому что есть хороший шанс, что поломка является результатом этого изменения. Или, если не это изменение, то другое изменение примерно в одно и то же время. –

ответ

0

Пожалуйста, попробуйте следующее:

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(); 
      } 

Перед открытым соединение проверить, является ли уже открыто или закрыто подключение.

+0

Хотя я согласен с вашим ответом, было бы также важно, чтобы OP обнаружила, что база данных уже неожиданно открыта. В общем, вы не хотите, чтобы слетали соединения;) –

+0

Похоже, что соединение закрыто для начала. Вот ошибка Сообщение = Не удается открыть базу данных по умолчанию пользователя. Ошибка входа. Ошибка входа для пользователя «DanielWebb-PC \ Daniel Webb». Источник = .Net Поставщик данных SqlClient –

+0

Я пробовал приведенный выше код, и он не помогает. Похоже, что соединение закрыто для начала. Вот ошибка Сообщение = Не удается открыть базу данных по умолчанию пользователя. Ошибка входа. Ошибка входа для пользователя «DanielWebb-PC \ Daniel Webb». Источник = .Net Поставщик данных SqlClient. У меня есть небольшая программа, которая использует один и тот же код, но работает только с ранней версией базы данных. Когда небольшая программа используется с любой другой базой данных, я получаю такую ​​ошибку. База данных ...... .. не может быть открыта, так как это версия 706. Этот сервер поддерживает версию 655 и ранее –

Смежные вопросы