Android 数据库不工作
请帮我这是我的密码。在启动之前,它不会显示任何错误。但是 当我运行应用程序时 它不显示任何数据。 当我检查数据库文件时,并没有创建表 孩子,帮帮我 谢谢和问候 古尔梅特·辛格Android 数据库不工作,android,sqlite,Android,Sqlite,请帮我这是我的密码。在启动之前,它不会显示任何错误。但是 当我运行应用程序时 它不显示任何数据。 当我检查数据库文件时,并没有创建表 孩子,帮帮我 谢谢和问候 古尔梅特·辛格 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SQLiteDatabase myDB= null; String TableName = "Dict
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SQLiteDatabase myDB= null;
String TableName = "Dictionary";
String Data="";
try {
myDB = this.openOrCreateDatabase("Punjabishabdkosh", MODE_PRIVATE, null);
myDB.execSQL("CREATE TABLE IF NOT EXISTS "
+ TableName
+ " (Field1 VARCHAR, Field2 VARCHAR);");
myDB.execSQL("INSERT INTO "
+ TableName
+ " (Field1, Field2)"
+ " VALUES ('Gurmeet', Tiwana);");
Cursor c = myDB.rawQuery("SELECT * FROM " + TableName , null);
int Column1 = c.getColumnIndex("Field1");
int Column2 = c.getColumnIndex("Field2");
c.moveToFirst();
if (c != null) {
do {
String Name = c.getString(Column1);
int Age = c.getInt(Column2);
Data =Data +Name+"/"+Age+"\n";
}while(c.moveToNext());
}
TextView tv = new TextView(this);
tv.setText(Data);
setContentView(tv);
} catch(Exception e) {
Log.e("Error", "Error", e);
} finally {
if (myDB != null)
myDB.close();
}
}
}
以下语句包含错误:
myDB.execSQL("INSERT INTO "
+ TableName
+ " (Field1, Field2)"
+ " VALUES ('Gurmeet', Tiwana);");
由于Field1
和Field2
都是VARCHAR
字段,单词“Tiwana”需要用单引号括起来,因此我假设插入失败,这就是为什么您看不到任何数据。将语句更改为:
myDB.execSQL("INSERT INTO "
+ TableName
+ " (Field1, Field2)"
+ " VALUES ('Gurmeet', 'Tiwana');");
在locgcat se中,如果打印出任何错误。是否尝试从字段2中检索整数?将Tiwana插入字段2中,然后尝试c.getInt(column2),它不是整数。请正确格式化代码。缩进不正确很难阅读。@bakriOnFire可能是对的。您不应该忽略这样的异常,
Log.e(“Error”,“Error”,e)代码>。logcat中有什么?