0
몇 가지 열을 만들고 싶지만 SQLite는 항상 두 개의 열만 만듭니다. 는 필자는 다음과 같이 열을 확인 :SQLite 데이터베이스가 열을 생성하지 않습니다.
String[] str= cursor.getColumnNames();
for(int i=0; i<str.length; i++)
Toast.makeText(this, str[i], Toast.LENGTH_SHORT).show();
는 항상에만 COUNTNAME 및 UID를.
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