【问题标题】:mdf file is work correctly under App_data folder but after attaching to sql server give following errormdf 文件在 App_data 文件夹下正常工作,但附加到 sql server 后出现以下错误
【发布时间】:2010-12-18 08:51:47
【问题描述】:

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>

【问题讨论】:

    标签: asp.net sql-server exception mdf


    【解决方案1】:

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

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

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

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

    这是你必须使用的。

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

    Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True

    【讨论】:

      【解决方案2】:

      如果 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

      【讨论】:

        【解决方案3】:

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

        Connection string samples

        【讨论】:

        • 你指定=你指定
        • EXEC sp_grantlogin 'Domain\myUserName' USE YOURDBNAME EXEC sp_grantdbaccess 'Domain\myUserName' 你应该看看下面的链接forums.asp.net/t/1296417.aspx
        猜你喜欢
        • 2023-03-25
        • 2014-01-21
        • 2010-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多