2011-11-08 24 views
0

私はいくつかの奇妙な動作をしています。 データベースが存在しません、と私は私の活動に次のコードを実行した場合:データベースが既に存在するときに新しいテーブルを作成するときの問題

listOpenHelper = new ListOpenHelper(ManageListActivity.this); 
db = listOpenHelper.getReadableDatabase(); 
Cursor cursor = db.query(ListOpenHelper.TABLE_NAME, null, null, null, null, null, BaseColumns._ID + " DESC"); 

データベースが作成され、テーブルのリストが作成され、ここでは問題を。この場合

productListOpenHelper = new ProductListOpenHelper(ProductListActivity.this); 
db = productListOpenHelper.getReadableDatabase(); 
Cursor cursor = db.query(ProductListOpenHelper.TABLE_NAME, null, null, null, null, null, ProductListOpenHelper.NAME + " ASC"); 

私は例外を取得し、「android.database.sqlite.SQLiteException:いいえ、そのようなテーブル:リスト:私は、他の活動に似ブロックを実行しようとすると、

問題があり、 SELECT * FROM list ORDER BY _id DESC "

上記のブロックを最初に実行し、最初のブロックを実行すると、エラーがproductlistテーブルに記録されます。

最初の実行ですべてのテーブルを作成する必要がありますか? ユーザーが各アクティビティに入力するときにテーブルを作成したいのですが、これを行うには良い方法がありますか?

ありがとうございます!

+0

ユーザーが別のアクティビティを開くたびに、テーブルを削除して再作成したいのはなぜですか?データベースの全目的は、データを保存することです。 – Jack

+0

私は削除して再作成しませんでした。一度作成しましたが、問題は既存のデータベースに別のテーブルを作成しようとしたときです。 –

答えて

0

2つの異なるデータベースがありますが、正しいですか?そうでない場合はとなります。おそらくは2つの異なるヘルパークラスを持つべきではありません。

また、ヘルパーを作成している場合は、が理想的ではありません。ブログ記事を参照してください。

http://www.touchlab.co/blog/single-sqlite-connection/

は、あなたのヘルパークラスのコードを投稿してください、あなたは2つの異なるクラスを持っている理由。

+0

ありがとうKevin!私はデータベースを1つしか持っていないので、DBの作成方法を学ぶために投稿したこのサイトを読んで、問題があればヘルパーのコードを投稿します。 –

0

なぜ2つの異なるヘルパーを使用していますか?私はその良い方法とは思わない...あなたは最初にテーブルを作成することができますし、必要なときにいつでもシングルヘルパーでデータベースを入手することができます。

関連する問題