【问题标题】:where to put the file from sqlitedatabase in our app将 sqlitedatabase 中的文件放在我们应用程序的什么位置
【发布时间】:2012-06-20 06:25:03
【问题描述】:

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

【问题讨论】:

  • 我不太清楚您想要什么...您的代码显示您正在创建一个空数据库...但是您说要复制文件...您是否创建了数据库在您的应用之外,现在想要加载它并在您的应用中使用它?
  • 不...我创建了我的应用程序..我想在 sqlitedatabase 中查看它。我在应用程序运行时将数据插入到模拟器中..我在另一个页面中输入了所有数据在列表视图中.....现在我想查看在 SQLite 数据库中输入的数据

标签: android database sqlite android-layout


【解决方案1】:

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

data/文件夹受操作系统保护,只有root设备才能看到。

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

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

【讨论】:

  • :但我正在使用 eclipse 开发应用程序....我找不到 data/data//database/ 路径...所以我被困在这里如何查看在 th sqlite 数据库中的模拟器中插入的日期
【解决方案2】:

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

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

编辑

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • :非常感谢...你能告诉我的应用程序的代码,以便我可以添加基于关键字的搜索选项
    • 你能告诉我在edittext中输入时如何将编辑文本值转换为字符串
    • mEdit = (EditText)findViewById(R.id.edittext); mButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Log.v("EditText", mEdit.getText().toString()); } });
    • 如何将其分配给某个 String 对象?
    猜你喜欢
    • 2020-11-24
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 2014-08-13
    • 2010-12-04
    相关资源
    最近更新 更多