2013-03-08 7 views
0

У меня есть выиграть приложение и я получаю эту ошибку, когда я хочу, чтобы подключить базу данных для моего приложения ошибка:базы данных Ошибка соединения

An attempt to attach an auto-named database for file C:\Users\Aren\Desktop\DB\REGISTRATION.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

public class DALBase 
{ 
    protected SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\\Users\\Aren\\Desktop\\DB\\REGISTRATION.mdf;integrated Security=true ; User Instance=True"); 
    protected SqlCommand com = new SqlCommand(); 
    protected SqlDataAdapter da = new SqlDataAdapter(); 
    protected DataSet ds = new DataSet(); 

} 

public DataSet GetStudent(string filter) 
    { 

     DataSet dset = new DataSet(); 
     using (SqlCommand cmd = new SqlCommand()) 
     { 
      string cmdstring = string.Format("Select * from {0}" 
       , Common.Data.Student.Table_Name); 


      if (!string.IsNullOrEmpty(filter)) cmdstring += " where " + filter; 


      cmd.CommandText = cmdstring; 
      cmd.Connection = this.con; 
      cmd.Connection.Open(); 
      cmd.CommandText = cmdstring; 
      cmd.Connection = this.con; 
      SqlDataAdapter adapter = new SqlDataAdapter(cmd); 
      adapter.Fill(dset, Common.Data.Student.Table_Name); 
      return dset; 
     } 
    } 

ПРИМЕЧАНИЕ: Кроме того, я получил 3 проект в моем решении методы DALBASE и GETSTUDENT находятся в одном проекте, и я вызываю их из другого проекта, чтобы получить данные для меня.

+0

Я не знаю, но я озадачен использованием как одиночных, так и двойных косых черт в строке соединения. Нужно ли это \\ на пути к окнам? –

ответ

0

Я считаю, что столкнулся с этой проблемой в прошлом. в моей ситуации я загрузил приложение в visual Studio, которое при запуске загрузило базу данных и подключилось к SQL Server. Как-то, когда я закрыл приложение, он не удалил базу данных из SQL SERVER, и в следующий раз, когда я запустил приложение, он пожаловался на подобное, если не такое же сообщение.

Если у вас установлен SSMS, вы можете открыть экземпляр. \ SQLEXPRESS и посмотреть, есть ли у вас файл регистрации * .mdf. Или, если вы не имеете SSMS открыть командную строку и тип ...

sqlcmd -S .\SQLEXPRESS -Q "select name from sys.databases" 

Это покажет вам все ваши базы данных, присоединенные/онлайн на этом экземпляре.

Надеюсь, это поможет.