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';

TechNet: sp_defaultdb

Если вы используете SQL Server 2005 или 2008, вы должны использовать вместо этого ALTER LOGIN, например

ALTER LOGIN [Domain\MyUserName] SET DEFAULT_DATABASE = tempdb;

TechNet: ALTER LOGIN

Другие вопросы по тегам