mdf файл корректно работает в папке App_data, но после подключения к серверу sql выдает следующую ошибку
mdf файл корректно работает в папке App_data, но после подключения к серверу sql выдает следующую ошибку при запуске страницы asp.net.
Невозможно открыть базу данных пользователя по умолчанию. Ошибка входа. Ошибка входа пользователя 'Domain \ myUserName'.
[править] Больше информации; Источник данных SQL и строка подключения.
<asp:SqlDataSource
id="srcFiles"
ConnectionString="Server=.\SQLExpress;Integrated Security=True;
AttachDbFileName=|DataDirectory|FilesDB.mdf;User Instance=True"
SelectCommand="SELECT Id,FileName FROM Files"
InsertCommand="INSERT Files (FileName,FileBytes) VALUES (@FileName,@FileBytes)"
Runat="server">
<InsertParameters>
<asp:ControlParameter Name="FileName" ControlID="upFile" PropertyName="FileName" />
<asp:ControlParameter Name="FileBytes" ControlID="upFile" PropertyName="FileBytes" />
</InsertParameters>
</asp:SqlDataSource>
3 ответа
Если вы используете Visual Studio и создали таким образом локальную базу данных и хотите знать, что такое "правильная" строка подключения:
1) Откройте проводник сервера
2) Под "соединения данных" выберите вашу базу данных и выберите "Свойства"
3) Посмотрите на свойство "строка подключения".
Это то, что вы должны использовать.
В вашем случае это, возможно, неправильно, потому что вы не указали параметр "Источник данных". Вот пример допустимой строки подключения:
Источник данных =.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf; Интегрированная безопасность =True; Пользовательский экземпляр = True
Вы можете убедиться, что вы указали правильное имя пользователя и пароль sql, или можете предоставить "Domain\myUserName" доступ к вашей базе данных. проверьте строки подключения ниже.
Я не уверен, как файл MDF "работает правильно", если он просто находится в папке и не подключен к SQL Server. Что вы подразумеваете под "работать правильно"?
Во всяком случае, какая версия SQL Server? Вы можете использовать sp_defaultdb, чтобы установить базу данных по умолчанию для этого имени входа в другую базу данных, которая, как вы знаете, существует, например:
EXEC sp_defaultdb @loginame = 'Domain\myUserName', @defdb = 'tempdb';
Если вы используете SQL Server 2005 или 2008, вы должны использовать вместо этого ALTER LOGIN, например
ALTER LOGIN [Domain\MyUserName] SET DEFAULT_DATABASE = tempdb;