2012-04-10 2 views
0

私は、クラス期間に関連するデータをAndroidプロジェクトに保存する必要がありました。私のオプションを見て、私はSQLデータベースが良い選択だと思った。残念ながら、実際にデータベースを開くために私の声明を得ることはできません。私の開いているデータベースステートメントの文字列は次のようになります:SQLがテーブルの混乱を開く

"create table "+ DATABASE_PERIOD+" (_id integer primary key autoincrement," 
+KEY_CLASSTITLE+" text not null, "+KEY_PERIOD+" text not null, 
"+KEY_XPERIODS+" text not null, "+KEY_DOUBLEPERIODS+" text not null); 

私はそれをAndroidウェブサイトのメモ帳プロジェクトに基づいています。もう少しフィールドを追加しましたが、データベースを開くことができません。もしあなたがエラーメッセージや他の情報を求めているなら、私はあなたにそれを手に入れようとします(これはSQLで初めてのことですので、これを修正するために何が必要かは分かりません)。前もって感謝します!

android.database.sqlite.SQLiteException: no such table: periodData: , while 
compiling: SELECT DISTINCT _id, title, period, xPeriods, doublePeriods FROM 
periodData WHERE _id = -1 

をそして、それが言うように、私はSQLiteのを使用しています:

私は取得していますエラーメッセージは次のようになります。私は私の呼び出しが間違っていないことを保証するために、プライベート静的文字列を使用して開始

ContentValues initialValues = new ContentValues(); 
initialValues.put(KEY_CLASSTITLE, title); 
initialValues.put(KEY_PERIOD, period); 
initialValues.put(KEY_XPERIODS, xPeriods); 
initialValues.put(KEY_DOUBLEPERIODS, doublePeriods); 

return mDb.insert(DATABASE_PERIOD, null, initialValues); 

私のデータベースのヘルパークラスでテーブルにいくつかのデータを置くための私のコード(キャッチしてくれてありがとうバラクを!)

+0

このステートメントはデータベース(-connection)を開きません。データベースにテーブルを作成します。いくつかのコードと完全なスタックトレースを質問に追加してください。 –

+0

エラーメッセージを表示してください。また、使用しているデータベースの実装(SQLite、MySQL、PostGres、SQL Serverなど)を –

答えて

1

問題はテーブル名です(エラーメッセージが示すとおり)。あなたが示したコードから、あなたは "期間"と呼ばれるテーブルを作成しました。それでも、テーブル名 "periodData"を使用してクエリを実行しようとします。それを修正するために

二つの方法:

1)それは)DBを再作成する必要として、(より困難periodDataに、データベース内のテーブル名を変更します。

2)クエリのテーブル名を "periodData"から "period"に変更します。

+0

ニースキャッチ!しかし、それでも同じエラーメッセージが表示されています。私はデータをどのように入れているかを示すために質問を編集しましたが、私はそれにいくつかの誤りがあるかもしれないと推測しています。ありがとう! –

+0

テーブル名を変更してDBバージョン変数をインクリメントするのを忘れてしまったので、新しいテーブル名でDBが削除/再作成されないようにします。そのような場合は、変数を増やしてアプリを実行すれば修正されるはずです。 – Barak

+0

それでした!すべてが今うまくいっています。この全部を私に指示してくれてありがとう。 –

1

チェックアウトhttp://developer.android.com/guide/topics/data/data-storage.html#db

上のdevのトピックあなたがデータベースを開く手助けするDbHelperクラスを作成しますし、あなたのコードは次のようになります。

SQLiteDatabase db = dbHelper.getReadableDatabase(); 
Cursor c = qb.query(db, projection, selection, selectionArgs, null, null, sortOrder); 

これは役に立ちましたか?

+0

に追加してください。追加した例外の追加情報に基づいて、@Barakの投稿は頭に釘を打つようです。 –