0

我为数据库创建了一个应用程序,其中包含一个学生表和 3 个字段,但我不知道如何将应用程序中的文件添加到sqlite database.

数据库助手:

  public class DatabaseHelper extends SQLiteOpenHelper {

  public static final String DATA_BASE="Mydatabase.db";
public static final String TABLE_NAME="Student";
public static final int DATABASE_VERSION =1;

public DatabaseHelper(Context context) {
 super(context, DATA_BASE, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {

db.execSQL("CREATE TABLE " + TABLE_NAME + 
 "(Name TEXT, AGE NUMERIC, ADDRESS TEXT)"); }

@Override
public void onUpgrade(SQLiteDatabase db,
        int oldVersion, int newVersion) {

}
}

主要活动:

public class DatabaseHelper extends SQLiteOpenHelper {

public static final String DATA_BASE="Mydatabase.db";
public static final String TABLE_NAME="Student";
public static final int DATABASE_VERSION =1;

public DatabaseHelper(Context context) {
 super(context, DATA_BASE, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {

db.execSQL("CREATE TABLE " + TABLE_NAME + 
 "(Name TEXT, AGE NUMERIC, ADDRESS TEXT)"); }

@Override
public void onUpgrade(SQLiteDatabase db,
        int oldVersion, int newVersion) {

}
}

显示活动:

  public class DisplayActivity extends Activity {

private ArrayList<String> arrayList = 
                    new ArrayList<String>();

private SQLiteDatabase Mydatabase;
ListView listView;
EditText enter;
@Override
public void onCreate(Bundle b) {
    super.onCreate(b);
    setContentView(R.layout.display);
    listView=(ListView)findViewById(R.id.listView);

    //OpenAndQueryDatabase

    try {
    DatabaseHelper db = new DatabaseHelper(this);
        //Open the database
        Mydatabase = db.getWritableDatabase();
        Cursor c = Mydatabase.rawQuery(
                "SELECT * FROM Student", null);

        if (c != null ) {
            if  (c.moveToFirst()) {
                do {
                    String Name = c.getString(
                            c.getColumnIndex("Name"));
                    int age = c.getInt(
                            c.getColumnIndex("AGE"));
                    String address = c.getString(
                            c.getColumnIndex("ADDRESS"));
                arrayList.add("Name    : " + Name +"\n"+ 
                               "Age        : " +age +"\n"+
                               "Address : " + address+"\n");
                }while (c.moveToNext());
            } 
        }           
        } catch (SQLiteException se ) { } 
        finally {
        if (Mydatabase != null) 
            Mydatabase.close();
    }


    //displayResultList

  listView.setAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, 
                                    arrayList));
}
}
4

3 回答 3

0

你可以在这里找到你的答案。只需在 SD 卡中的某个位置创建一个文件。

data/ 文件夹受操作系统保护,只有根设备可以看到它。

您需要的是链接的答案:使用 new File("/sdcard/myFolder/myFile.sqlite") 打开 SDCARD 中的文件。

File databaseLocation = new File("/sdcard/myFolder/myFile.sqlite" ); 
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(databaseLocation , null);
于 2012-06-20T06:36:57.217 回答
0

您可以通过执行以下操作将数据库从模拟器中拉出以查看。

1) 转到 Eclipse 中的 DDMS 屏幕。
2)打开名为“文件资源管理器”的选项卡
3)导航到包含您的数据库的目录(通常data\data\your.package.name\databases
4)突出显示/选择您的数据库文件
5)在右上角单击箭头指向右侧的图标“拉来自设备的文件”
6) 按照提示将文件保存到您的计算机。
7) 使用您选择的 SQLite 数据库浏览器打开文件。

编辑

请注意,这仅适用于模拟器上的数据......它不会从真实设备中提取数据库,因为真实设备上的data目录在您的应用程序外部受到保护/无法访问。

于 2012-06-20T07:04:40.520 回答
0

在 Eclipse 中转到 windows -> Showview ->android ->File Explorer 你可以在这里看到你的数据库 /data/data/yourpackage/database 使用右上角的按钮从那里拉你的数据库。 https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/ 使用这个 Firefox 添加来查看您的数据。

于 2012-06-20T07:05:05.790 回答