【问题标题】:Why is mdf file not appearing in the App_Data folder?为什么 mdf 文件没有出现在 App_Data 文件夹中?
【发布时间】:2014-02-06 12:49:20
【问题描述】:

我正在尝试开始使用 ASP.NET MVC 4。

然后马上遇到问题,根据电子书,我应该可以启动一个新的 mvc 4 互联网应用程序,调试并从 UI 模板中选择登录,然后停止。 这应该在 App_Data 文件夹中创建 mdf 文件。我应该可以在服务器资源管理器中单击并打开它。

实际发生的情况 - 在我的 SQL Express 中创建数据库。

正确完成这一步对于学习本教程的其余部分至关重要。

我熟悉 MVC,但主要是前端的东西,所以我试图增加我对 MVC 的数据库/模型方面的理解。

这是一个全新的项目,没有进行任何更改,只是开箱即用的代码。 在 Windows XP 机器上,使用 Visual Studio 2010。

连接字符串 -

  <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet-HaveYouSeenMe-20131125091100;Integrated Security=SSPI" providerName="System.Data.SqlClient" />

谁能解释一下——为什么我的开箱即用的连接字符串在 SQL Express 中创建 Db,以及如何按照书中的建议在 App_Data 文件夹中创建 mdf。干杯。

【问题讨论】:

  • 原始数据库是否位于 C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data 中?
  • 如果您没有以管理员身份运行 Visual Studio 并且不复制 MDF 文件和日志文件,则会出现类似问题。

标签: c# visual-studio-2010 asp.net-mvc-4


【解决方案1】:

我知道这表示已回答,但它可能就像单击解决方案资源管理器中的“显示所有文件”图标一样简单。默认情况下,.mdf 文件不会显示,因此请确保选择“显示所有文件”:)

【讨论】:

    【解决方案2】:

    我也花了一些时间才弄清楚这一点,因为我想将数据库附加到 App_Data 下,但什么也没发生。没有添加任何文件。我只是发现有两个选项可以单击“显示所有文件”。

    在这张图片上,我点击了显示所有文件的红色箭头。过了一段时间,我尝试单击 Blue 箭头上的其他 Show All Files ,它现在可以工作了。

    如果您遇到同样的问题,希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      只需更改您的连接字符串:

      <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\aspnet-HaveYouSeenMe-20131125091100.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
      

      |DataDirectory| 是一个特殊的令牌,它指向您的应用程序的 ~/App_Data 文件夹。

      查看following article on MSDN,它提供了有关 SQLExpress 中连接字符串的更多详细信息。

      【讨论】:

      • 添加了新的连接字符串,在 UI 上选择登录时出现错误,LazyInitializer.EnsureInitialized(ref _initializer, ref _isInitialized, ref _initializerLock);被突出显示。消息 - 无法初始化 ASP.NET 简单成员资格数据库。错误页面 - 无法完成操作。提供的 SqlConnection 未指定初始目录。 - 突出显示 - ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
      • 知道了 这不会在 My SQL Express 中创建数据库,对吗?
      • 我按照@Darin Dimitrovs 提供的链接中的一些步骤进行操作,干杯。
      【解决方案4】:

      数据库很可能已在您的 Documents 文件夹中创建。在服务器资源管理器中,右键单击数据库(在数据连接中),然后单击在 SQL Server 对象资源管理器中浏览。然后在 SQL Server 对象资源管理器中右键单击您的数据库并选择属性。在“属性”窗口中查找当前连接参数并查看数据文件的值。

      为确保在您的 App_Data 文件夹中创建数据库,请在您的连接字符串中插入 AttachDbFilename=|DataDirectory|\database_name.mdf

      【讨论】:

        【解决方案5】:

        你不见了AttachDbFilename

         <connectionstrings>
                    <add connectionstring="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\aspnet-HaveYouSeenMe-20131125091100.mdf;Integrated Security=True;User Instance=True  " 
        name="ConnectionASPX" providername="System.Data.SqlClient" />
            </connectionstrings>
        

        您可以在AttachDbFileName 设置中指定|DataDirectory| 变量来代替存储在App_Data 文件夹中的数据库文件的物理路径。

        【讨论】:

          【解决方案6】:

          就我而言,这是因为我用来登录 PC 的用户帐户是 Microsoft 帐户(Outlook 电子邮件地址),而 Visual Studio 读取了我的本地用户帐户。本地用户帐户是 C:\Users\userName\Documents\Visual Studio 2015\Projects\ProjectFolder\App_Data 中的“用户名”。

          我在 Windows 10 中使用 Visual Studio 2015。

          解决方案很简单。我只需要转到我的电脑设置,选择帐户并选择使用本地帐户而不是 Microsoft 帐户登录。

          【讨论】:

            【解决方案7】:

            您也可以进入服务器资源管理器并右键单击数据连接。然后按“添加连接”,将数据源更改为“服务器数据库文件”,并在数据库文件名下(新建或现有) 您进入 app_data 文件夹,如果找不到 .mdf 文件,则浏览到该文件夹​​并添加您要为文件命名的名称。

            `SulemansStore\SulemansStore\App_Data\SulemansDatabase.mdf`
            

            我浏览到App_Data 并添加我的数据库文件名Sulemansdatabase.mdf(如果我正在创建一个新的数据库文件,我会添加这部分)。

            【讨论】:

              【解决方案8】:

              您有App_Data 文件夹吗?就我而言,它出现在 Visual Studio 中,但实际上并不存在。这是因为 git 不会推送空目录,因此将 repo 克隆到另一个位置会导致没有 App_Data 文件夹。一旦我手动创建它,问题就解决了。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2010-11-18
                • 1970-01-01
                • 2010-12-18
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多