SQLite 与 Xamarin 中的实际查询

发布于 2025-01-10 20:28:46 字数 940 浏览 0 评论 0原文

我正在从旧的移动应用程序移植一些代码,我希望使用 SQLite。 我能找到的所有教程都说使用 sql-net-pcl 包。 当我这样做时,我发现我无法真正使用简单的查询,而且似乎我必须使用 ORM。 这将大大增加我要做的工作量,因为现在我无法直接移植 SQL 语句。

以下代码不会引发异常:

/////////////////////////////////////////////////
// Table aaaaaa
try
{
    string sql2 =
        "XCREATE TABLE aaaaaa ( \n" +
        "    sync_seq INTEGERXXXXX NOT NULL \n" +
        ") \n";
    con.Execute(sql2, new object[0]);
}
catch (Exception ex)
{
    DisplayAlert("Error!", $"{ex.Message}", "OK");
    return;
}

这也不会:

/////////////////////////////////////////////////
// Table allowMO
sql =
    "CREATE TABLE allowMO ( \n" +
    "    flag TEXTXXXX NOT NULL, \n" +
    "    cap  REAL NOT NULL \n" +
    ") \n";
cmd.CommandText = sql;
_ = cmd.ExecuteNonQuery();

我尝试使用在桌面上使用的 System.Data.SQLite 包,但在创建连接时收到有关缺少互操作文件的错误。

“SQLite.Interop.dll assembly: type: member:(null)”

有没有人使用过允许普通旧式 SQL 查询的包?

I am porting over some code from an older mobile application and I was hoping to use SQLite.
All the tutorials I could find say to use the sql-net-pcl package.
When I do that, I find I cannot really use simple queries and it seems like I must use the ORM.
This will vastly increase the amount of work I will have to do because now I cannot directly port the SQL statements.

The following code throws no exception:

/////////////////////////////////////////////////
// Table aaaaaa
try
{
    string sql2 =
        "XCREATE TABLE aaaaaa ( \n" +
        "    sync_seq INTEGERXXXXX NOT NULL \n" +
        ") \n";
    con.Execute(sql2, new object[0]);
}
catch (Exception ex)
{
    DisplayAlert("Error!", 
quot;{ex.Message}", "OK");
    return;
}

And neither does this:

/////////////////////////////////////////////////
// Table allowMO
sql =
    "CREATE TABLE allowMO ( \n" +
    "    flag TEXTXXXX NOT NULL, \n" +
    "    cap  REAL NOT NULL \n" +
    ") \n";
cmd.CommandText = sql;
_ = cmd.ExecuteNonQuery();

I tried to use the System.Data.SQLite package that I use on the desktop but I get an error about a missing interop file when I create a connection.

"SQLite.Interop.dll assembly: type: member:(null)"

Has anyone used a package that allows for plain old SQL queries?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文