如何为我的 ASP.NET Web 应用程序引用 App_Data 文件夹中的 Sqlite db 文件?

Posted

技术标签:

【中文标题】如何为我的 ASP.NET Web 应用程序引用 App_Data 文件夹中的 Sqlite db 文件?【英文标题】:How do I reference the Sqlite db file in the App_Data folder for my ASP.NET Web Application? 【发布时间】:2010-11-28 02:52:48 【问题描述】:

我目前根据 ASP.NET 最佳模式和实践将我的 sqlite db 文件存储在 App_Data 文件夹中。

目前我在 webconfig 中使用以下内容:

  <connectionStrings>
    <add name="sqlite"  
         connectionString="Data Source=|DataDirectory|MyDB; Version=3;" />
  </connectionStrings>

以及以下代码:

       public SqliteDAO(string path)
        
            Connection = new System.Data.SQLite.SQLiteConnection(path );
        

//...

//where path = |DataDirectory|MyDB

它会导致 sqlite 创建一个新数据库(其中没有表),因此我的数据访问调用都不起作用,因为它们没有找到表名。如何从我的 WebApplication 代码中引用 App_Data 文件夹中的 sqlite db 文件??

谢谢!

【问题讨论】:

【参考方案1】:

将 Server.MapPath 用于您的 db 文件。所以会是这样的

Server.MapPath(@"~\App_Data\Your.db");

【讨论】:

这可能是一个愚蠢的问题,但是你将如何从一个不是“CodeBehind”文件的文件中做到这一点,你没有服务器对象?您是否必须传递服务器对象或代码隐藏文件中的路径? @kdmurray - 你可以使用这个方法:msdn.microsoft.com/en-us/library/… 谢谢本。通过将 HttpContext 对象传递给另一个类,我自己也设法找到了解决方案: MyClass c = new MyClass(); c.myFunc(this.Context); @kdmurray,有点晚了,但是如果您在 asp.net 中工作并且不需要传递它,您总是可以使用静态 System.Web.HttpContext.Current 对象。

以上是关于如何为我的 ASP.NET Web 应用程序引用 App_Data 文件夹中的 Sqlite db 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 asp.net vnext 使用不同的 .net 语言 (F#)

如何为 ASP.NET Core 应用配置 Azure 应用服务日志记录提供程序?

如何为 ASP.net UserControl 指定命名空间?

如何为 Asp.NET MVC 5 创建 ClaimsIdentity 对象?

如何为 ASP.NET Core 2.2 项目中的子域正确启用 CORS?

如何为 ASP.NET MVC 2 创建自定义成员资格提供程序?