Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Datenbanktabelle existiert nicht

Das Thema "Datenbanktabelle existiert nicht" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 05.01.2012, 17:48   #1 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 31.10.2011
Beiträge: 85
Abgegebene Danke: 3
Erhielt 0 Danke für 0 Beiträge
Standard Datenbanktabelle existiert nicht

Ich brauche Hilfe. Ich habe meine Datenbank und die Helper klasse wie hier gezeigt wurde : Using your own SQLite database in Android applications | ReignDesign erstellt. Die Datenbank wurde auch mit dem Tool SQLite Database Browser erstellt. Ich kriege keine Fehlermeldung wenn ich die Datenbank aufmache. Wenn ich aber was aus der Datenbank auslesen möchte kriege ich die SQL Meldung dass die Tabelle mit dem angebenem Namen nicht exisitert. Die Tabelle ist aber in der Datenbank und sie hat ein Eintrag drin. Der Code der Helper Klasse ist hier:
Code:
public class DataBaseHelper extends SQLiteOpenHelper {

    private static String DB_PATH = "/data/data/de.meineapp/databases/";
    private static String DB_NAME = "testDB";
    private SQLiteDatabase myDatabase;
    private final Context myContext;
    private static String DB_TABLE = "Test";
    
    public static final String ROWID 
    = "_id";
    public static final String NAME 
    = "MyName";
    public static final String TELEFON
    = "MyTelefon";
    
    public DataBaseHelper(Context context) {
        super(context, DB_NAME, null, 1);
        // TODO Auto-generated constructor stub
        this.myContext = context;
    }

    public void createDataBase () throws IOException{
        boolean dbExist = checkDataBase ();
        if (dbExist){         
        }
        else{
            this.getReadableDatabase();
            try {
                copyDB ();                
            }
            catch (IOException e){
                throw new Error ("Error createDataBase");
            }
        }
    }
    
    private void copyDB() throws IOException {
        // TODO Auto-generated method stub
        InputStream myInput = myContext.getAssets().open(DB_NAME);
        String outFile = DB_PATH + DB_NAME;
        OutputStream out = new FileOutputStream(outFile);
        
        byte [] buffer = new byte [1024];
        int length;
        while ((length = myInput.read(buffer)) > 0){
            out.write(buffer, 0 ,length);
        }
        out.flush();
        out.close();
        myInput.close();
    }
    
    public void openDataBase ()  throws SQLException{
        String path = DB_PATH + DB_NAME;
        myDatabase = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);
    }

    @Override
    public synchronized void close() {
        // TODO Auto-generated method stub
        if (myDatabase != null){
            myDatabase.close();
        }
        super.close();
    }

    private boolean checkDataBase() {
        SQLiteDatabase checkDB = null;
        try {
            String myPath = DB_PATH + DB_NAME;
            checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
        }
        catch (SQLiteException e) {
            // TODO: handle exception
        }
        
        if (checkDB != null){
            checkDB.close();
        }
        return checkDB != null ? true : false;    
    }

    /* (non-Javadoc)
     * @see android.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite.SQLiteDatabase)
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
    }
    
    public String getName () throws SQLException
    {
        String [] columns = new String [] {ROWID, NAME, TELEFON};
        Cursor c = myDatabase.query(DB_TABLE, columns, ROWID + "=" + 1, null, null, null, null);
        if (c != null){
            c.moveToFirst();
            String name = c.getString(1);
            return name;
        }
        return null;
    }

    /* (non-Javadoc)
     * @see android.database.sqlite.SQLiteOpenHelper#onUpgrade(android.database.sqlite.SQLiteDatabase, int, int)
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
    }
}
zblack ist offline   Mit Zitat antworten
Alt 05.01.2012, 21:52   #2 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 31.10.2011
Beiträge: 85
Abgegebene Danke: 3
Erhielt 0 Danke für 0 Beiträge
Standard AW: Datenbanktabelle existiert nicht

egal wie ich die Tabelle in der Datenbank benenne kommt die Meldung

01-05 21:44:23.853: I/Zygote(28397): Zygote: pid 28397 has INTERNET permission, then set capability for CAP_NET_RAW(13)
01-05 21:44:24.803: I/ActivityThread(28397): queueIdle
01-05 21:44:24.803: V/ActivityThread(28397): Reporting idle of ActivityRecord{4a4056a8 token=android.os.BinderProxy@4a405118 {de.meinautohaus/de.meinautohaus.AppStartSeteActivity}} finished=false
01-05 21:44:24.803: W/ActivityNative(28397): send ACTIVITY_IDLE_TRANSACTION
01-05 21:44:33.323: I/ActivityThread(28397): queueIdle
01-05 21:44:33.323: V/ActivityThread(28397): Reporting idle of ActivityRecord{4a415e98 token=android.os.BinderProxy@4a415910 {de.meinautohaus/de.meinautohaus.StartLogosActivity}} finished=false
01-05 21:44:33.323: W/ActivityNative(28397): send ACTIVITY_IDLE_TRANSACTION
01-05 21:44:34.373: I/ActivityThread(28397): queueIdle
01-05 21:44:34.373: V/ActivityThread(28397): Reporting idle of ActivityRecord{4a3ff268 token=android.os.BinderProxy@4a40acb0 {de.meinautohaus/de.meinautohaus.MeinAutohausStartActivity}} finished=false
01-05 21:44:34.373: W/ActivityNative(28397): send ACTIVITY_IDLE_TRANSACTION
01-05 21:49:52.753: I/ActivityThread(28477): queueIdle
01-05 21:49:52.753: V/ActivityThread(28477): Reporting idle of ActivityRecord{4a5056a8 token=android.os.BinderProxy@4a505118 {de.meinautohaus/de.meinautohaus.AppStartSeteActivity}} finished=false
01-05 21:49:52.753: W/ActivityNative(28477): send ACTIVITY_IDLE_TRANSACTION
01-05 21:49:54.543: I/ActivityThread(28477): queueIdle
01-05 21:49:54.553: V/ActivityThread(28477): Reporting idle of ActivityRecord{4a515eb8 token=android.os.BinderProxy@4a515930 {de.meinautohaus/de.meinautohaus.StartLogosActivity}} finished=false
01-05 21:49:54.553: W/ActivityNative(28477): send ACTIVITY_IDLE_TRANSACTION
01-05 21:49:55.323: W/dalvikvm(28477): threadid=1: thread exiting with uncaught exception (group=0x400207d8)
01-05 21:49:55.333: E/AndroidRuntime(28477): FATAL EXCEPTION: main
01-05 21:49:55.333: E/AndroidRuntime(28477): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.meinautohaus/de.meinautohaus.MeinAutohausStartActivity}: android.database.sqlite.SQLiteException: no such table: mytable: , while compiling: SELECT _id, MyName, MyTelefon FROM mytable
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2669)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2685)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.app.ActivityThread.access$2300(ActivityThr ead.java:126)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:2038)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.os.Handler.dispatchMessage(Handler.java:99 )
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.os.Looper.loop(Looper.java:123)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.app.ActivityThread.main(ActivityThread.jav a:4633)
01-05 21:49:55.333: E/AndroidRuntime(28477): at java.lang.reflect.Method.invokeNative(Native Method)
01-05 21:49:55.333: E/AndroidRuntime(28477): at java.lang.reflect.Method.invoke(Method.java:521)
01-05 21:49:55.333: E/AndroidRuntime(28477): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:858)
01-05 21:49:55.333: E/AndroidRuntime(28477): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:616)
01-05 21:49:55.333: E/AndroidRuntime(28477): at dalvik.system.NativeStart.main(Native Method)
01-05 21:49:55.333: E/AndroidRuntime(28477): Caused by: android.database.sqlite.SQLiteException: no such table: mytable: , while compiling: SELECT _id, MyName, MyTelefon FROM mytable
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.database.sqlite.SQLiteCompiledSql.native_c ompile(Native Method)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.database.sqlite.SQLiteCompiledSql.compile( SQLiteCompiledSql.java:91)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.database.sqlite.SQLiteCompiledSql.<init>(S QLiteCompiledSql.java:64)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.database.sqlite.SQLiteProgram.<init>(SQLit eProgram.java:80)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.database.sqlite.SQLiteQuery.<init>(SQLiteQ uery.java:46)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.database.sqlite.SQLiteDirectCursorDriver.q uery(SQLiteDirectCursorDriver.java:42)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.database.sqlite.SQLiteDatabase.rawQueryWit hFactory(SQLiteDatabase.java:1454)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.database.sqlite.SQLiteDatabase.queryWithFa ctory(SQLiteDatabase.java:1338)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.database.sqlite.SQLiteDatabase.query(SQLit eDatabase.java:1293)
01-05 21:49:55.333: E/AndroidRuntime(28477): at de.meinautohaus.DataBaseHelper.getName(DataBaseHel per.java:132)
01-05 21:49:55.333: E/AndroidRuntime(28477): at de.meinautohaus.MeinAutohausStartActivity.onCreate (MeinAutohausStartActivity.java:78)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.app.Instrumentation.callActivityOnCreate(I nstrumentation.java:1047)
01-05 21:49:55.333: E/AndroidRuntime(28477): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2633)
01-05 21:49:55.333: E/AndroidRuntime(28477): ... 11 more
zblack ist offline   Mit Zitat antworten
Alt 06.01.2012, 11:23   #3 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Datenbanktabelle existiert nicht

die metadata tabelle mit eintrag hast angelegt ?
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 06.01.2012, 11:31   #4 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 31.10.2011
Beiträge: 85
Abgegebene Danke: 3
Erhielt 0 Danke für 0 Beiträge
Standard AW: Datenbanktabelle existiert nicht

Hast recht , die hat gefehlt, aber warum braucht man diese Tabelle ?
kann man auch ohne die auskommen ?
zblack ist offline   Mit Zitat antworten
Alt 06.01.2012, 11:38   #5 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Datenbanktabelle existiert nicht

wenn in der anleitung steht, android braucht sie, dann wird sie android wohl brauchen

gehts denn jetzt ?
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 06.01.2012, 11:40   #6 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 31.10.2011
Beiträge: 85
Abgegebene Danke: 3
Erhielt 0 Danke für 0 Beiträge
Standard AW: Datenbanktabelle existiert nicht

aso, ja, es geht jetzt auf jedem fall
zblack ist offline   Mit Zitat antworten
Alt 06.01.2012, 22:16   #7 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Datenbanktabelle existiert nicht

naja dann erübrigt sich die frage ob man auch ohne die auskommen kann
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Datenbank column existiert angeblich nicht Micka Android App Entwicklung 8 04.01.2012 21:10
widget nicht sichtbar nicht löschbar der platzt nicht belegbar !?! twisternine Sony Ericsson Xperia X10 Forum 2 23.11.2011 02:27
Milestone2 lädt nicht - reagiert nicht - bootet nicht Lockos Motorola Milestone 2 Forum 4 12.04.2011 09:13
/system/bin/su existiert nicht? MisterD Root / Hacking / Modding für Motorola Milestone 8 21.11.2010 22:07
SMS löschen die nicht existiert! Zwa Komma Dreizehn Samsung Galaxy Spica (I5700) Forum 0 18.09.2010 18:31




Du liest gerade: "Datenbanktabelle existiert nicht" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.