【问题标题】:SQLite database doesn't work with android while on windows it works perfectly fineSQLite 数据库不适用于 android,而在 Windows 上却可以正常工作
【发布时间】:2023-03-15 01:50:02
【问题描述】:

我想将数据库添加到我的 android 项目中,手机上的其他数据库似乎工作正常。当我尝试使用我的实用程序时,我尝试查看我的数据库,报告说数据库图像格式错误,它无法执行查询以列出表和视图。

我尝试手动复制 db 并查看当我将其从资产复制到数据文件夹时是否发生错误,但结果是相同的。我还将 db 复制回 Windows,一切正常。

所以我的问题是:这种不兼容的原因是什么,我该如何解决?

【问题讨论】:

  • 你确定这是一个sqlite文件而不是一个普通的sql文件吗?
  • 是的,我绝对确定,文件在我的应用程序的 Windows 测试版中运行良好
  • 你用什么程序在windows中查看数据库?
  • SQLite2009 Pro 和 SQLite 数据库浏览器 2.0,数据库文件以“SQLite 格式 3”开头,我在允许查看 SQLite 数据库内容的 c# 应用程序中使用它没有问题

标签: android sqlite


【解决方案1】:

我一直在使用的数据库文件是在数据库开发过程中使用的,并且有相当多的更改历史。我认为我的文件版本或其他完全是我问题的原因。

我修复它的方法是创建具有完全相同架构的空数据库并将有问题的数据库文件的所有内容复制到那里。我使用 SQLite 命令行 shell 实现了它。

ATTACH DATABASE "D:\dbtest\new.db" AS newdb;
ATTACH DATABASE "D:\dbtest\old.db" AS olddb;
INSERT INTO newdb.android_metadata SELECT * FROM olddb.android_metadata;
INSERT INTO newdb.table1 SELECT * FROM olddb.table1;
... (repeat for each table) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多