2013-01-06 42 views
1

您好我的Android應用程序有問題。我想爲我的應用程序使用sqlite數據庫,並且我有一個使用onCreate(),onPause()onResume()方法的活動。我創建了一個類DatenbankManager,創建了一個表id和名稱,但是如果我使用模擬器啓動我的應用程序,則會在此之後收到消息並關閉我的應用程序。爲什麼我不能在我的Android應用程序中創建SQLite數據庫

這裏我DatenbankManager類:

package de.tarasov.database_example_tarasov; 

import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

public class DatenbankManager extends SQLiteOpenHelper { 

    private static final String DB_Name = "Stundenplanname.db"; 
    private static final int DB_VERSION = 1; 
    private static final String KLASSEN_CREATE = "CREATE TABLE Stundenplan(" + 
    "_id INTEGER PRIMARY KEY AUTOINCREMENT, "+ 
      "name TEXT NOT NULL"; 
    private static final String KLASSEN_DROP = "DROP TABLE IF EXIST Stundenplan"; 

    //Konstruktor 
    public DatenbankManager(Context context) { 
     super(context, DB_Name, null, DB_VERSION); 

    } 

    //Methode wenn eine Datenbank erstellt werden muss 
    @Override 
    public void onCreate(SQLiteDatabase db) { 

     db.execSQL(KLASSEN_CREATE); 
    } 

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

      db.execSQL(KLASSEN_DROP); // Löscht Tabelle wenn nicht vorhanden 
      onCreate(db); //Erstellt Tabelle 
    } 

} 

這裏我MainActivity:

package de.tarasov.database_example_tarasov; 

import android.os.Bundle; 
import android.widget.Toast; 
import android.app.Activity; 
import android.database.sqlite.SQLiteDatabase; 

public class MainActivity extends Activity { 

    private SQLiteDatabase mDatenbank; 
    private DatenbankManager mHelper; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mHelper = new DatenbankManager(this); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     mDatenbank.close(); //Schließt Datenbank 

     Toast.makeText(this, 
       getResources().getString(R.string.db_close), 
       Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    protected void onResume() {  
     super.onResume(); 
     mDatenbank = mHelper.getReadableDatabase(); //Datenbank öffnen 

     //Gibt Kurztext aus 
     Toast.makeText(this, 
       getResources().getString(R.string.db_open), 
       Toast.LENGTH_SHORT).show(); 
    } 

} 

這裏是錯誤消息:

enter image description here

,如果我做調試我見:

Source not found. 

在logcat中我看到這一點:

enter image description here

我恨這個debuger:d

+0

什麼是你的logcat的輸出? – Jave

+0

看到我的更新我做了一個截圖 – Tarasov

+2

運行adb kill-server,adb start-server。這將啓動你的調試器,你會得到所有的舊消息。 :)而不要說它是一個出色的記錄器/監控工具。 – Siddharth

回答

3

你忘了在你創建表的語句)

private static final String KLASSEN_CREATE = "CREATE TABLE Stundenplan(" + 
    "_id INTEGER PRIMARY KEY AUTOINCREMENT, "+ 
      "name TEXT NOT NULL);"; 
+0

哦,我的上帝:D謝謝^^ – Tarasov

相關問題