我创建了一个名为“enigmeDB”的数据库和一个表“table_enigme”:
public class EnigmeDatabase extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "enigmeBD";
private static final String TABLE_ENIGME = "table_enigme";
// fields
private static final String KEY_ID = "id";
private static final String KEY_DESCRIPTION = "description";
private static final String KEY_REPONSE="reponse";
private static final String KEY_CATEGORIE="categorie";
public EnigmeDatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// creation of the table
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_ENIGME_TABLE =
"CREATE TABLE " + TABLE_ENIGME
+ "("
+ KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ KEY_DESCRIPTION + " TEXT,"
+ KEY_REPONSE + " TEXT,"
+ KEY_CATEGORIE + "TEXT"
+ ")";
db.execSQL(CREATE_ENIGME_TABLE);
}
// Update
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_ENIGME);
onCreate(db);
}....
当我打开我的DDMS透视图并打开文件资源管理器:/data/data/com.android.enigme(我的软件包)时,我找到“enigmeDB”,但我找不到“table_enigme”。
虽然在Sqlite数据库浏览器中我的表看起来是空的:
我从一个Activity插入数据,这是我的类:
公共类EnigmeActivity扩展了Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//recuperation des champs depuis main.xml
final EditText description=(EditText) this.findViewById(R.id.description);
final EditText reponse=(EditText)this.findViewById(R.id.reponse);
final EditText categorie=(EditText)this.findViewById(R.id.categorie);
Button ajouter = (Button)this.findViewById(R.id.ajouter);
final EnigmeDatabase db=new EnigmeDatabase(this);
ajouter.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Log.d("Etape : " , "Recuperation");
Log.i("description : ", description.getText().toString());
Log.i("reponse : ", reponse.getText().toString());
Log.i("categorie : ", categorie.getText().toString());
//add a new Enigme
Log.d("Etape : ","Insertion" );
db.ajouterEnigme(new EnigmeBean(description.getText().toString(),reponse.getText().toString(),categorie.getText().toString()));
Toast.makeText(EnigmeActivity.this, "Ajout avec succes!", Toast.LENGTH_SHORT).show();
}
});
}
答案 0 :(得分:1)
在SQLite中,数据库的所有表都在一个文件中。
答案 1 :(得分:1)
这是一个包含所有表的数据库文件。
您已在上一张照片中打开它,并且在创建列名时存在列名称。
它为“空”的原因是因为其中没有数据。
您需要使用数据填充表格。
答案 2 :(得分:1)
“table_enigme”在enigmBD中。该文件包含您的数据库。资源管理器中的该文件是数据库。不确定你是否在寻找更多东西。
您的代码未插入任何数据,因此该表应为空。
答案 3 :(得分:1)
“databases”文件夹包含您的数据库(单个文件)。没有其他名为“table”的文件。
答案 4 :(得分:0)
插入错误出现在这个方面:
KEY_CATEGORIE +“TEXT”
创建的表包含名为“categorieTEXT”的列:
categoriesie是我的列名,TEXT是其类型
我不得不在“和TEXT之间划一个空格,就像这样:
KEY_CATEGORIE +“TEXT”