【问题标题】:Fetch data from external own SQLite database从外部自己的 SQLite 数据库中获取数据
【发布时间】:2011-06-08 19:25:13
【问题描述】:

我有自己的数据库,其中包含 http://i55.tinypic.com/6i8861.jpg (SQLiteBrowser) 我有这段代码,它将数据库从资产资源文件夹复制到系统data/data/package/files目录http://pastebin.com/XeNGmrcD,这就是它在 onCreate()http://pastebin.com/TigXFStF 中的实现方式,这是 test.sqlite 所在的图像放入模拟器系统目录,执行以下查询时出现错误:http://i51.tinypic.com/2mxrk0p.jpg

cursor = dbObj.getReadableDatabase().query(TABLE_NAME, null, null, null, null, null, null);

我知道游标是空的,因为没有找到表。如果我在 SQLite 浏览器中执行与上述相同的查询 (SELECT * FROM gradovi)。我得到结果,在这里我没有。 请告诉我如何从我的数据库中获取数据?我做错了什么?我也想知道如何遍历记录?

【问题讨论】:

    标签: android database sqlite null cursor


    【解决方案1】:

    似乎数据库文件复制失败。您的代码有许多被吞并的异常,因此您可能看不到发生的错误。

    请注意,尝试使用预构建的 SQLite 数据库文件发布应用程序存在缺陷,包括不同的路径和不同的 SQLite 版本。

    【讨论】:

    • 它确实复制了它,我已经导出了从代码创建的文件并使用 SQLite 浏览器检查它是否具有应有的相同数据。版本是 2,我也保持路径不变。我只是在根据情况更改数据库的名称(应该发生)。无论如何,我自己设法解决了这个问题。现在它完美无缺。谢谢!
    【解决方案2】:
    ((Button)findViewById(R.id.button01)).setOnClickListener(
    new View.OnClickListener(){
    
        @Override
        public void onClick(View v) {
            DatabaseHelper myDbHelper = new DatabaseHelper(CopyDbActivity.this);
            try{
                myDbHelper.createDataBase();
            }catch (IOException ioe) {
                throw new Error("Unable to create database");
            }
    
            try {                
                myDbHelper.openDataBase();
            }catch(SQLException sqle){
                throw sqle;
            }
    
            Toast.makeText(CopyDbActivity.this, "Success", Toast.LENGTH_SHORT).show();
    
            c=myDbHelper.query("EMP_TABLE", null, null, null, null,null, null);
            if(c.moveToFirst()){
                do {
                    Toast.makeText(CopyDbActivity.this,
                    "_id: " + c.getString(0) + "\n" +
                    "E_NAME: " + c.getString(1) + "\n" +
                    "E_AGE: " + c.getString(2) + "\n" +
                    "E_DEPT:  " + c.getString(3),
                    Toast.LENGTH_LONG).show();
                } while (c.moveToNext());
            }
        }
    });
    
    
    
    }
    

    【讨论】:

      【解决方案3】:

      据我了解,目的地应该是“/data/data/PackageName/databases/mydatabase”。

      你也可以从http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/得到一些帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-28
        • 2012-01-06
        • 2012-06-06
        相关资源
        最近更新 更多