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中有什么?