Android 某些表的动态数据库备份

Android 某些表的动态数据库备份,android,sqlite,backup,Android,Sqlite,Backup,我只需要备份主数据库中的一些表。其他表是引用的,是静态的,因此不需要备份 我在SD卡上创建了一个新的空白数据库。我可以直接在SD卡上访问数据库吗?还是需要在完成备份后复制它 真正的问题是,我可以在循环中遍历每条记录中的字段吗?这样我就不必有数百行代码,每个字段一行 在VB.NET中,我将执行以下操作 For X = 0 to RS.Fields.Count NewRS.Fields(x).value = Rs.Fields(x).value 等等。。。在android中,我是如何做到这一点的

我只需要备份主数据库中的一些表。其他表是引用的,是静态的,因此不需要备份

我在SD卡上创建了一个新的空白数据库。我可以直接在SD卡上访问数据库吗?还是需要在完成备份后复制它

真正的问题是,我可以在循环中遍历每条记录中的字段吗?这样我就不必有数百行代码,每个字段一行

在VB.NET中,我将执行以下操作

For X = 0 to RS.Fields.Count
 NewRS.Fields(x).value = Rs.Fields(x).value

等等。。。在android中,我是如何做到这一点的?

除非您的参考表占数据库大小的95%,否则我会在数据库关闭时使用标准Java文件I/O复制数据库文件。这将大大快于一次一个单元格地存储数据。

我编写了一个类来处理这个问题。是的,我的数据库至少有95%是参考

以下是代码的核心:

Cursor c = DbBak.rawQuery(Sql, null);
            String Cn[] = c.getColumnNames();

            if (c != null ) {
                if  (c.moveToFirst()) {
                    do {
                        for ( x=0; x< c.getColumnCount(); x++)
                        {
                            newRow.put(Cn[x].toString(), c.getString(x));
                        }

                        Db.insert(TableName,  null, newRow);

                    }while (c.moveToNext());
Cursor c=DbBak.rawQuery(Sql,null);
字符串Cn[]=c.getColumnNames();
如果(c!=null){
if(c.moveToFirst()){
做{
对于(x=0;x