从我们的应用程序中的sqlitedatabase放置文件的位置

时间:2012-06-20 06:25:03

标签: android database sqlite android-layout

我为数据库创建了一个应用程序,其中包含一个学生表和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));
}
}

3 个答案:

答案 0 :(得分:0)

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

数据/文件夹受操作系统保护,只有有根设备的设备才能看到它。

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

File databaseLocation = new File("/sdcard/myFolder/myFile.sqlite" ); 
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(databaseLocation , null);

答案 1 :(得分:0)

您可以通过执行以下操作从数据库中提取数据库以进行查看。

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

修改

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

答案 2 :(得分:0)

在eclipse中转到windows - &gt; Showview - &gt; android - &gt;文件资源管理器 你可以在这里看到你的数据库/ data / data / yourpackage / database 使用右上角的按钮从那里拉出数据库。 https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/ 使用此Firefox添加来查看您的数据。