2

Web を検索すると、そのような問題に直面したのは私だけではないことがわかりました。ほぼ同じタイトルの質問があることはわかっていますが、それは解決には役立ちませんでした。私が直面している問題...最初から始めましょう

作成したテーブルに挿入しようとしているだけです。このテーブルには、「id」、「name」、「value」の 3 つの列があり、次のように作成されました。

public static final String TABLE_NAME = "cookie";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_NAME = "name";
public static final String COLUMN_VALUE = "val";

private static final String DATABASE_NAME = "commments.db";
private static final int DATABASE_VERSION = 2;

// Database creation sql statement
private static final String DATABASE_CREATE = "create table "
  + TABLE_NAME + "(" 
  + COLUMN_ID + " integer primary key autoincrement, " 
  + COLUMN_VALUE + "text not null, "
  + COLUMN_NAME + " text not null"
  + ");";

public MySQLiteHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase database) {
  database.execSQL(DATABASE_CREATE);
}

今、私は次のようにこのテーブルに挿入しようとしています

ContentValues values = new ContentValues();
        values.put(MySQLiteHelper.COLUMN_NAME, "username");
        values.put(MySQLiteHelper.COLUMN_VALUE, username);

        long insertId = database.insert(MySQLiteHelper.TABLE_NAME, null, values);
        Cursor cursor = database.query(MySQLiteHelper.TABLE_NAME, allColumns, MySQLiteHelper.COLUMN_ID + " = " + insertId, null, null, null, null);
        cursor.moveToFirst();
        nameValuePair newComment = cursorToNameValuePair(cursor);
        cursor.close();

しかし、私はこのエラーが発生しています

table cookie has no column named val 

同様の問題をオンラインで検索しました。変更について話すほとんどのソリューションはデータベースに発生したため、次のいずれかを行う必要があります

1- デバッグ モードで再度実行する前に、アプリケーションをアンインストールします 2- データベースのバージョンを 1 から 3 に更新します

しかし、それは役に立ちませんでした..あなたの解決策を楽しみにしています:)

4

1 に答える 1

9

問題はこちら

+ COLUMN_VALUE + "text not null, "

文字列にDATABASE_CREATEcolumn namecolumn typeの間にスペースがありません。

そのはず

+ COLUMN_VALUE + " text not null, "
于 2013-09-27T08:19:19.620 に答える