顯示具有 SQLite 標籤的文章。 顯示所有文章
顯示具有 SQLite 標籤的文章。 顯示所有文章

2015/10/30

Android SQLite java.lang.IllegalStateException常見錯誤

attempt to re-open an already-closed object
//是因為可能要讀和寫資料庫
//解決方式:不要將Databse關閉,要關閉則透過生命週期去關閉
//有用到Cursor則將其關閉即可



Cannot perform this operation because there is no current transaction.
//是因為有重複執行該方法
//例如
beginTransaction();
setTransactionSuccessful();
endTransaction();
endTransaction();

解決方式:找出會重複執行的方法並刪去不需要的即可

2015/10/27

Android SQLite 讀/寫

參考

Code:
private void ReadDatabase() {

 //取得可讀取資料庫
 SQLiteDatabase db = new Database(context).getReadableDatabase();

 //查詢資料庫
 cursor = db.rawQuery("SELECT * FROM MyOptions", new String[] {});

 //取得資料筆數
 // cursor.getCount()

 //持續移動到下一筆資料
 while (cursor.moveToNext()) {
     //取得Name欄位資料
  cursor.getString(cursor.getColumnIndex("Name"));

  //取得Doc欄位資料
  cursor.getString(cursor.getColumnIndex("Doc"));
 }

 //關閉指標
 cursor.close();

 //關閉資料庫
 db.close();
}

private void WriteDatabase() {
    //取得可寫入資料庫
 SQLiteDatabase db = new Database(context).getWritableDatabase();

 //寫入資料
 ContentValues values = new ContentValues();

 //欄位, 值
 values.put("Name", "values"));

 //-1則是新增失敗
 if (db.insert("MyOptions", null, values) != -1)
  Toast.makeText(AddOptionActivity.this, "新增成功", 1).show();
 else
  Toast.makeText(AddOptionActivity.this, "新增失敗", 1).show();

 //關閉資料庫
 db.close();
}

2014/02/26

Android建立SQLite並新增查詢

Layout:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/buttonSave"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="Save" />

    <Button
        android:id="@+id/buttonLoad"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/buttonSave"
        android:layout_alignBottom="@+id/buttonSave"
        android:layout_centerHorizontal="true"
        android:text="Load" />

</RelativeLayout>