2011-07-28 14 views
1

私はSqlite3を使用してテーブルを作成しました。また、そのテーブルにレコードを挿入しました。正常に実行されています。しかし、今は同じデータベース内に別のテーブルを作成しました。 今はデータが別のテーブルに挿入されていませんが、同じデータベースにテーブルが作成され、それぞれのコードが書き込まれています。 record.itを挿入した後、私のレコードが位置-1に正常に挿入されたことを示すメッセージが表示されました。この「テーブルが存在しないか、ファイルが暗号化されました」のようなエラーが表示されます。 また、Sqlite cmdを使用してテーブルを作成しようとすると、テーブルが作成されますが、そのファイルがどこに保存されるのかが分かりません。 誰でもこの問題を解決する方法を教えてもらえますか? あなたがコードをしたい場合は、あなたのアプリケーションがまだ古いデータベースと連携しているので、それはおそらくある--- ...ここSqlite for Androidを使用してデータベースファイル(.sqlite)を作成する方法は?

+0

あなたはアンドロイド用の.sqliteファイルを作成したい –

+0

@kundanはい.iはアンドロイド用の.sqliteファイルを作成したいと思います。 – swan

+0

@kundanしかし、私は1つのデータベース(.sqlite)ファイルに2つのテーブルを作成したい – swan

答えて

0

を事前に

感謝を配置します。既存のデータベースを作成する前にそれをチェックすると、アプリケーションは古いデータベースを見つけてそれを使用します。しかし、古いデータベースには、追加した新しいテーブルがありません。

データベースのバージョン管理をいくつか含めて、データベースの作成時にチェックする必要があります。既存のデータベースが最新のバージョンに達していない場合は、上書きすることができます。

すぐに解決策は、電話機/エミュレータからアプリケーションを完全にアンインストールし、再インストール/実行することです。データベースは最新の状態になります。操作は、このソフトウェアで実行することができますが、複数のテーブルを作成することができます

+0

ありがとうalot..it works .... :) – swan

+0

今私は別のprobsがあります。私は2つのテーブルを持っている。他のテーブルへの外部キーを与えられました。ユーザーが1つのIDのレコードを挿入するかのように、別のテーブルのIDを増分しておきたいのです。 EX。 id 1のレコードが挿入されました。別のテーブルのID 1の情報を追加したいのですが、別のテーブルのIDを増やす方法は? – swan

+0

私はそれを助けることができません、ごめんなさい – Marmoy

0

Androidの用途のカスタムを介してデータベースへのアクセスの容易な方法を提供し、 SQLiteOpenHelperクラス。これにより、現在のデータベースにバージョン番号を与え、スキーマを変更するたびに増分することができます。

最初にデータベースにアクセスすると、onCreate()メソッドが呼び出され、データベースを構築できます。

今後データベースにアクセスすると、SQLiteOpenHelperはインストールされているデータベースのバージョンをプロジェクトで定義されているものと照合し、古いバージョン番号を提供するonUpgrade()メソッドを呼び出します。これは、カスタムSQLコマンドを提供して、各レガシー・バージョンのデータベースを現行バージョンに個別に更新できることを意味します。

開発中の場合は、番号を増やしてこのような方法を提供するのは簡単です。

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    Log.w(TAG, "Upgrading database from version " + oldVersion + " to " 
      + newVersion + ", which will destroy all old data"); 
    db.execSQL("DROP TABLE IF EXISTS notes"); 
    onCreate(db); 
} 

注、これは、このトピックをカバーしてAndroidのSDKサンプルNotepad Tutorialから取得されます。

関連する問題