0

Sqlite データベースに 2 つのテーブルがあります。最初のテーブルの列は_idas primary keynote dateおよび_cidasforeign keyです。2 番目のテーブルの列は_cid,primary keyですCategory

いくつかのデフォルト レコードは、作成時に 2 番目のテーブルに挿入しました。

両方のテーブルが正常に作成されました。しかし、挿入しない最初のテーブルにレコードを挿入するとき。いかなる種類の例外も取得しません。私を案内してください。

Table 1

private static final String DB__CREATE1 = "CREATE TABLE " + TABLE_NAME_CATE + "(_cid INTEGER PRIMARY KEY AUTOINCREMENT, "+ "Category TEXT not null);";

Table 2

private static final String DB__CREATE2 = "CREATE TABLE " + TABLE_NAME + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, "+ "Note TEXT not null, "+ "NoteDateTime TEXT not null, " + "_cid INTEGER not null, " + "FOREIGN KEY(_cid) REFERENCES Categories(_cid));";

データの挿入方法

public void insertData1( long c_id, String discription, String nDate){

    ContentValues  contentValues=new ContentValues();
    contentValues.put("note", discription);
    contentValues.put("date", nDate);
    contentValues.put("_cid", c_id);
    open();
    database.insert("TABLE_NAME", null,contentValues);
    close();
}`

呼び出しステートメント

dbConnector.insertData1(1, textview.getText().toString(), nDateTime.toString());

4

2 に答える 2

0

最初のテーブルは次のようになります。

    private static final String DB__CREATE1 = "CREATE TABLE " + TABLE_NAME_CATE + "( "+_cid+ "INTEGER PRIMARY KEY AUTOINCREMENT, "+Category +"TEXT not null);";

しかし、完全なコードを見ずに実際に知ることは困難です。「カテゴリ」の変数を宣言しましたか (文字列ですか)?

そして、あなたの2番目についても、「_id」、「Note」、「NoteDateTime」などの宣言された変数がありますか?

編集

わかりました、私には理解できないものがあります。上で説明したように、最初のテーブルは、id、メモの日付、および外部キーで構成されています。しかし、これは次のようになります。

    private static final String DB__CREATE1 = "CREATE TABLE " + TABLE_NAME_CATE + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, "+ "date TEXT not null,"+ " Category TEXT not null);";

_id の代わりに _cid を最初の列に渡し、日付列を忘れました。

次に、2 番目のテーブルで「Categories(_cid)」を参照しますが、最初のテーブルで宣言されているように「Category(_cid)」ではないでしょうか?

于 2013-02-27T14:07:30.703 に答える
0

完全なコードがなければ、正確な問題を指摘するのは非常に困難です。非常に論理的な前に投稿された回答を見ることができます。ただし、複数のテーブル データベースを扱った私の経験からすると、非常に面倒で、単一のテーブルのみの場合とは異なります。

私は同様の問題を抱えていました。一度マルチテーブルデータベースを作成しましたが、テーブルを作成したため、何が問題なのかまだわかりませんが、挿入できませんでした。後で、この手順に従いました: https://stackoverflow.com/a/5899110/1351867 うまくいきました!

私の推測では、データベース アダプターまたはヘルパー クラスに問題がある可能性があり、2 つのテーブル間で混乱している可能性があります。それでも問題が発生する場合は、完全なコードを投稿してください。

于 2013-03-07T06:35:28.907 に答える