【问题标题】:file is encrypted or is not a database in SQlite Android文件已加密或不是 SQlite Android 中的数据库
【发布时间】:2016-03-29 16:26:01
【问题描述】:

我已经使用 SQlite Manager(Mozila 插件)创建了数据库,然后从 csv 文件导入一些数据,然后我导出数据库。

当我将数据库导入安卓模拟器时,数据库导入成功。但是,当我运行一些查询时,出现了错误文件已加密或不是数据库 这是我的代码:

public Cursor getTestData()
{
    try
    {
        String sql ="SELECT * FROM `mlokasi` WHERE _id = 1";

         Cursor mCur = myDataBase.rawQuery(sql, null);
        if (mCur!=null)
        {
           mCur.moveToNext();
        }
        return mCur;
    }
    catch (SQLException mSQLException)
    {
        Log.e("Exception", "getTestData >>"+ mSQLException.toString());
        throw mSQLException;
    }
}

然后调用方法,如下所示:

Cursor testdata = myDbHelper.getTestData();

        if (testdata.moveToFirst()) {
            do {
                Log.d("kab", testdata.getString(0));
            } while (testdata.moveToNext());
        }

怎么了?请帮忙,谢谢

【问题讨论】:

  • 首先,你的查询是错误的。 mlokasi 没有字符串分隔符。
  • 我删除了字符串分隔符,但没有效果。
  • 那么您要么使用加密保存了数据库,要么没有将正确的文件传递给数据库引擎。
  • 我刚刚用 'UTF-8' 保存了数据库。那我该怎么办?
  • 是的。伟大的答案。谢谢@Bob Malooga。我一直在尝试 .sqlite 数据库。然后,完美工作。我的错误是在使用 .sqlite 扩展名保存数据库时导出数据库。

标签: android database sqlite encryption


【解决方案1】:

我的错误是错误的数据库格式(不是纯文本)。我已将数据库更改为 .sqlite 扩展名,然后工作正常。

【讨论】:

    猜你喜欢
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多