2013-10-19 125 views
-1

请帮助我这里是我的代码。在启动之前,它不会显示任何错误。但是 当我运行应用程序 它不显示任何数据。 当我检查数据库文件没有表创建 Kidly帮我数据库不能正常工作

感谢&问候 古米特·辛格

@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(); 
     } 
    } 
} 
+0

在locgcat se如果有任何错误打印.. – bakriOnFire

+0

您是否试图从Field2检索整数?您将Tiwana插入到Field2中,然后再尝试使用不是整数的c.getInt(column2)。 – blaffie

+0

请正确格式化您的代码。使用缩进不正确来阅读是非常困难的。 – Simon

回答

1

下面的语句包含一个错误:

myDB.execSQL("INSERT INTO " 
       + TableName 
       + " (Field1, Field2)" 
       + " VALUES ('Gurmeet', Tiwana);"); 

由于两个Field1Field2VARCHAR字段,单词“Tiwana”需要用单引号括起来,所以我假设ins ert失败,这就是为什么你没有看到任何数据。更改语句为:

myDB.execSQL("INSERT INTO " 
       + TableName 
       + " (Field1, Field2)" 
       + " VALUES ('Gurmeet', 'Tiwana');");