gpt4 book ai didi

.net - 使用 WPF 和 ASP.NET MVC 的 SQLite 的最佳实践?

转载 作者:行者123 更新时间:2023-12-03 17:01:21 29 4
gpt4 key购买 nike

在 WPF 和 ASP.NET MVC 中使用 SQLite 的正确方法是什么?

  • 在 WPF 中,我有一个名为 App_Data 的目录中的 test.sqlite 文件,但是当我编译并运行它时,它不会将数据库复制到 ../bin/Debug 中,所以它当然不能找到它。但是,如果我手动将 test.sqlite 文件复制到 ../bin/Debug,那么它就可以工作了。但这不可能是开发具有可读取和写入的本地数据库的应用程序的方式,对吗?如何将数据库标记为“应用程序的一部分”,以便在编译和运行时复制并可以使用?或者这是开发/发布过程的一部分?我在这里缺少什么,我想我这里有一个 Web 隐喻,它不适用于 Windows 应用程序的处理方式。

  • 在 ASP.MVC 中,我在 WPF 中复制了访问数据库的相同代码,但它一直在 connection.Open() 行上提示“无法打开数据库”。我有“../App_Data/test.sqlite”,我知道这是放置它来访问文件的正确位置。但是,我试图将一个文本文件写入“../App_data”并得到一个 UnauthorizedAccessException”,所以我认为问题是我无权在此处读/写。我该如何更改它?

        private string getData()
    {
    StringBuilder sb = new StringBuilder();
    //string fullPathAndFileName = Server.MapPath("App_Data/testnew.sqlite");
    using (SQLiteConnection conn =
    new SQLiteConnection(@"Data Source=" + Server.MapPath("App_Data/testnew.sqlite")))
    {
    StringBuilder query = new StringBuilder();
    query.Append("SELECT * ");
    query.Append("FROM members ");
    query.Append("ORDER BY firstName");
    using (SQLiteCommand cmd = new SQLiteCommand(query.ToString(), conn))
    {
    conn.Open();
    using (SQLiteDataReader dr = cmd.ExecuteReader())
    {
    while (dr.Read())
    {
    //Console.WriteLine(dr.GetValue(0) + " " + dr.GetValue(1));
    string id = dr.GetValue(0).ToString();
    string firstName = dr.GetValue(1).ToString();
    sb.Append(firstName + ", ");

    }
    }
    }
    }
    return sb.ToString();

    }

最佳答案

您可以将 test.sqlite 文件添加到您的 WPF 项目,并在属性窗口中指定“复制到输出目录”:“始终复制”。这样每次编译项目时,文件都会自动复制到输出目录。

关于您的 UnauthorizedAccessException,您是否尝试过授予 ASP.Net 服务帐户对 App_Data 文件夹的读写权限?要找出用于运行应用程序池的帐户,您可以编写一个简单的 test.aspx 页面:

<%@ Page Language="C#" %>
<script runat="server">
protected override void OnLoad(EventArgs e)
{
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
base.OnLoad(e);
}
</script>

关于.net - 使用 WPF 和 ASP.NET MVC 的 SQLite 的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/469676/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com