2015-01-10 3 views
-2

У меня появился новый компьютер и скопировал проект приложения Windows, над которым я работал на своей новой машине. Я также скопировал связанный файл MDF. Я перетащил MDF в мое решение, я вижу его в Server Explorer, Data Sources и SQL Server Object Explorer.Импорт MDF с другой машины

Как только мой код пытается получить доступ к базе данных, я получаю следующее исключение:

Невозможно открыть базу данных \ «MyApp.Classes.NorthwindContext \», запрашиваемую именем входа. Ошибка входа в систему. \ R \ nЛоджин не выполнен для пользователя «NEW-PC \ Julien».

Строка соединения:

connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=B:\MyApp\MyApp.Classes.NorthwindContext.mdf;Integrated Security=False" 

Я попытался поставить свое имя пользователя и пароль в строке подключения никакого эффекта, например, так:

connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=B:\MyApp\MyApp.Classes.NorthwindContext.mdf;Integrated Security=False;User ID=NEW-PC\Julien;pwd=mypwd" 

Некоторые прибегая к помощи говорит, что мой логин необходимо в папке Logins папки Security в обозревателе объектов SQL Server, которой она является.

Что мне нужно сделать, чтобы мой код мог читать эту базу данных?

ответ

-1

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

Data Source=.\SQLEXPRESS 

просто как то

+1

То есть для присоединения к экземпляру SQL Server по умолчанию, предыдущий для подключения к экземпляру LocalDB. Проблема заключалась в том, что для экземпляра LocalDB не был определен логин для него (в основной базе данных), причина, по которой переход от LocalDB к экземпляру по умолчанию работал для вас, - это a. Вы его установили, b. Вы уже определили этот логин в этом экземпляре. –

+0

@ DannyVarod Я думаю, вы должны изменить свой комментарий на ответ, OP can not награждает щедрость себе AFAIK –

1

Мое предположение, так как вы переместили базу данных с одного сервера на другой, даже если есть пользователь Julien в базе данных, а сервер также имеет вход Julien но пользователь Julien был сиротой.

Вам нужно будет сопоставить этого пользователя с логином на этом новом компьютере/сервере. Вы можете сделать что-то вроде

USE [DB_Name] 
GO 
ALTER USER JULIEN WITH LOGIN = JULIEN --<-- this should be a valid login 
GO 

Это отобразит этого осиротевшего пользователя на логин на этом новом сервере.

+0

'Невозможно изменить пользователя Julien, потому что не существует или у вас нет permission.' – Julien

+0

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

+0

Когда я открываю cmd и нажимаю 'whoami', я вижу' NEW-PC \ Julien'. Я администратор – Julien

2

Сначала вы должны попытаться включить интегрированную защиту в строку подключения. Это будет использовать ваши учетные данные Windows для входа в базу данных SQL.

ConnectionString = "Data Source = (LocalDB) \ v11.0; AttachDbFilename = B: \ MyApp \ MyApp.Classes.NorthwindContext.mdf; Integrated Security = True;"

+0

это не повлияло – Julien