0
Я хочу создать несколько столбцов, но SQLite создает всегда только два столбца. Im проверки столбцов, как это:SQLite Database не создает столбцы
String[] str= cursor.getColumnNames();
for(int i=0; i<str.length; i++)
Toast.makeText(this, str[i], Toast.LENGTH_SHORT).show();
его всегда только COUNTNAME и UID. (Да, я обновление DATABASE_VERSION)
Вот мой код:
public class DatabaseHelper extends SQLiteOpenHelper{
private static final String DATABASE_NAME ="CountsDatabase";
public static final String TABLE_NAME="COUNTSTABLE";
private static final int DATABASE_VERSION = 21;
public static final String UID = "_id";
public static final String COUNTNAME = "CountName1";
public static final String COUNTNAME2 = "CountName2";
public static final String AKTUELLERWERT = "aktuellerWert";
private static final String CREATE_TABLE ="CREATE TABLE " + TABLE_NAME + " ("+ UID + " INTEGER PRIMARY KEY AUTOINCREMENT," + COUNTNAME +" TEXT,"+ COUNTNAME2 +" TEXT," + AKTUELLERWERT + " INTEGER" + ");";
private static final String DROP_TABLE ="DROP TABLE IF EXISTS "+TABLE_NAME;
Context context;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
this.context=context;
Toast.makeText(context, "Constructor Database", Toast.LENGTH_SHORT).show();
}
@Override
public void onCreate(SQLiteDatabase db) {
Toast.makeText(context, "onCreate Database", Toast.LENGTH_SHORT).show();
Toast.makeText(context, CREATE_TABLE, Toast.LENGTH_LONG).show();
try{
db.execSQL(CREATE_TABLE);
} catch(SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Toast.makeText(context, "Upgrade Database", Toast.LENGTH_SHORT).show();
try{
db.execSQL(DROP_TABLE);
onCreate(db);
} catch(SQLException e){
e.printStackTrace();
}
}
}
Вы перебор столбцов курсора, а не таблицы баз данных. Как вы создаете курсор в первую очередь? Также обратите внимание, что 'Toast' не слишком надежный механизм регистрации, рассмотрите, например, 'android.util.Log'. – laalto