0

mdf 文件在 App_data 文件夹下正常工作,但在将其附加到 sql server 后,在运行 asp.net 页面时出现以下错误。

无法打开用户默认数据库。登录失败。用户“域\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>
4

3 回答 3

0

如果您使用的是 Visual Studio,并且您已经以这种方式创建了一个本地数据库,并且想知道“正确”的连接字符串是什么:

1) 打开服务器资源管理器

2)在“数据连接”下选择您的数据库并选择“属性”

3)查看“连接字符串”属性。

那是你必须使用的。

在您的情况下,它可能不正确,因为您没有指定“数据源”参数。以下是有效连接字符串的示例:

数据源=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;用户实例=True

于 2011-05-17T08:38:48.320 回答
0

如果 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:更改登录

于 2009-11-19T16:10:24.260 回答
0

您可以确保您指定了正确的 sql 用户名和密码,或者您可以授予 'Domain\myUserName' 对数据库的访问权限。查看下面的连接字符串。

连接字符串示例

于 2009-11-19T16:02:45.710 回答