2016-12-13 13 views
0

私は可能な限りSOを使ってサーフィンしました。私は、私のものと同様の質問に対する答えに記載されているように、テーブルの作成に構文エラーがないことを願っています。データベーステーブルの列が作成されないのはなぜですか?

私はこれを解決してください。

目的の列が作成されていません。これがメッセージです。

E/SQLiteLog:(1)テーブルするcontactDetailsはE/SQLiteDatabase

ContactNumberという名前の列を持っていない:エラーContactNumber = 9655279648 [担当=ガネーシュR

android.database.sqlite.SQLiteExceptionを挿入:テーブルContactDetailsには、ContactNumber(コード1)という名前の列はありません。コンパイル中に:INSERT INTO ContactDetails(ContactNumber、ContactName)VALUES(?、?)

public class ProjectConstants { 
      public static final String myDbName = "ContactsDatabase.db"; 
      public static final String myTableName = "ContactDetails"; 
      public static final String nameColumn = "ContactName"; 
      public static final String numberColumn = "ContactNumber"; 
     } 

私は、プロジェクト全体を通してアクセスされる定数の値を格納するために、上記のような別のクラスを持っています。

public class DBHelper extends SQLiteOpenHelper { 

    private static final String SQLCreateEntries = "CREATE TABLE " + ProjectConstants.myTableName + 
      " (" + ProjectConstants.nameColumn + ProjectConstants.numberColumn + ")"; 
    private static final String SQLDeleteEntries = 
      "DROP TABLE IF EXISTS " + ProjectConstants.myTableName; 

    public DBHelper(Context context) { 
     super(context, String.valueOf(name), null, version); 
    } 


    @Override 
    public void onCreate(SQLiteDatabase sqLiteDatabase) { 
     sqLiteDatabase.execSQL(SQLCreateEntries); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { 
     sqLiteDatabase.execSQL(SQLDeleteEntries); 
     onCreate(sqLiteDatabase); 
    } 

    public void addContact(String nameLabel, String numberLabel) { 
     SQLiteDatabase sqLiteDatabase = this.getWritableDatabase(); 
     ContentValues contentValues = new ContentValues(); 
     contentValues.put(ProjectConstants.nameColumn, nameLabel); 
     contentValues.put(ProjectConstants.numberColumn, numberLabel); 
     sqLiteDatabase.insert(ProjectConstants.myTableName, null, contentValues); 
    } 
} 

答えて

1

あなたはCreate queryため

"CREATE TABLE " + ProjectConstants.myTableName + 
     " (" + ProjectConstants.nameColumn + ProjectConstants.numberColumn + ")" 

構文を使用してテーブルを作成し、あなたCreate queryあなたがtypescommasの両方が欠落している、それを修正し、プログラムが動作するには

"CREATE TABLE MYTABLENAME (MYCOLUMNNAME MYCOLUMNTYPE, MYSECONDCOLUMNNAME MYSECONDCOLUMNTYPE,...)" 

次のとおりです。 )

+0

種類の追加、カンマ。エミュレータからアプリケーションをアンインストールしました。 apkを再インストールしました。それは正常に働いた。 :) –

+0

うれしかったよ! –

関連する問題