2009-06-01 13 views
16

可能性の重複:私たちは、Android上でアプリケーションを開発しようとしている
Android Sqlite - “No Such Table” ErrorSQLiteの例外:いいえ、そのようなテーブルエラー

。私たちはSQLiteデータベースを使用しており、取得している電話で

SQLiteException:このようなテーブルはありません。

シミュレータで正常に動作しています。

誰でもこの情報を入力できますか?

+1

は、あなたがきれいエミュレータ上で、あなたのコードを実行することがありますか?また、テーブルを作成するコードが実行されていることを確認しましたか?次のステップは、sqliteデータベースをemualtorから取得し、sqliteデータベースブラウザを使用してテーブルが実際に存在することを確認することです。 – hacken

+0

こんにちは!私は既にデータベースを作成しており、すでに作成されたデータベースを使用しているので、テーブルはすでに作成されています。私はちょうど既存のテーブルでSELECTをやっています。私の懸念は、電話ではなくシミュレータ上で正常に動作していることです –

+0

テーブルがあることを確認しましたか?選択されていないテーブルが電話に表示されていない可能性は非常に高いです。再度、DBが正しく作成されたことを確認するのは非常に簡単です。 – hacken

答えて

14

データベースファイル名を正しく指定しないと、空のデータベースが作成されることになります。これは一般的に 'テーブルが見つかりません'の原因です。パスとデータベースのファイル名を確認してください。

+1

私は、例えば:data @ base-dbを使用していたので、dbは作成されていません。私はデータベースデータベースのように@を削除した後、それは私のために働く.... :)ヒントのおかげで... – PrinceMidha

2

hereの手順を使用して問題を解決できる人もいます。この問題はAndroid 2.2の特定のバージョンに存在するようです。この変更を自分のコードに組み込んだのですが、実際に動作するかどうかを確認するためにベータテスト担当者を探しています。

6

私は同じ問題の別の風味に直面していました。

私は挿入しようとするとno such tableエラーが発生しました。

挿入する前に、コードが呼び出される最初の時間は、私はこのOnCreateの方法

public void onCreate(SQLiteDatabase db) { 

      db.execSQL(DATABASE_CREATE); 
      Log.v("INFO1","creating db"); 
      //Toast.makeText(mCtx, "created", Toast.LENGTH_SHORT).show(); 
     } 
内のテーブルを作成するために私のSQLクエリを持っていた onCreate()

呼び出します

getWritableDatabase()

mDb = mDbHelper.getWritableDatabase(); 
を呼んでいました

私にとっては、アプリケーションが最初に実行されたときにdbが正常に作成されました。他のいくつかのエラーのためにテーブルがありません。 アプリケーションが実行されるたびに、onCreate()が呼び出されることはありません。すでにdbが存在し、テーブルが作成されていないため、以降のSQLコマンドはすべて失敗します。

だから私はonCreate()の外にテーブルを作成して移動し、現在その作業

+1

あなたはどのようにしてdbをoncreateの外に見つけましたか? –

関連する問題