2016-12-28 76 views
0

我已經創建了這個類的數據庫表的名稱:錯誤:android.database.sqlite.SQLiteException:沒有這樣的柱:如first_name(碼1)

public class TableDatas { 
    public TableDatas() { 
    } 
    public static abstract class TableInfo implements BaseColumns//columns of tables 
    { 
     public static final String first_Name = "first_name" ; 
     public static final String last_Name = "last_name" ; 
     public static final String sex = "sex" ; 
     public static final String birth_date = "birth_date" ; 
     public static final String db_name = "UserInfo" ; 
     public static final String tbl_name = "UserData" ; 

    } 

} 
在db輔助類

我創建了一個光標功能:

public Cursor getInfo(DatabaseOperat dop) { 
      SQLiteDatabase sq = dop.getReadableDatabase(); 
      String columns[] = {TableInfo.first_Name, TableInfo.last_Name, TableInfo.sex, TableInfo.birth_date}; 
      Cursor CR = sq.query(TableInfo.tbl_name, columns, null, null, null, null, null); 
      return CR; 
     } 

而且在mainActivity我這樣做是爲了列的數據保存在數組列表:

DatabaseOperat DOP = new DatabaseOperat(CTX); 
     Cursor CR = DOP.getInfo(DOP); 
     DOP.getWritableDatabase(); 
     CR.moveToFirst(); 
     while (!CR.isAfterLast()) { 


      Fnames.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.first_Name))); 
      Lnames.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.last_Name))); 
      Birthdates.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.sex))); 
      Sex.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.birth_date))); 
      // Adding contact to list 

     } 
      CR.close(); 
      Toast.makeText(getApplicationContext(), "Cursor Success", Toast.LENGTH_LONG).show(); 

中得到的錯誤是:

android.database.sqlite.SQLiteException:...沒有這樣的柱:如first_name(碼1):在編譯:SELECT名字,姓氏,性別,birth_date FROM的UserData 。任何想法的錯誤是?

+1

的[可能的複製何時SQLiteOpenHelper的onCreate()/ onUpgrade( )運行?](http://stackoverflow.com/questions/21881992/when-is-sqliteopenhelper-oncreate-onupgrade-run) –

回答

0

改變此密碼:

DatabaseOperat DOP = new DatabaseOperat(CTX); 
    Cursor CR = DOP.getInfo(DOP); 
    DOP.getWritableDatabase(); 
    CR.moveToFirst(); 
    while (!CR.isAfterLast()) { 


     Fnames.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.first_Name))); 
     Lnames.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.last_Name))); 
     Birthdates.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.sex))); 
     Sex.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.birth_date))); 
     // Adding contact to list 

    } 
     CR.close(); 
     Toast.makeText(getApplicationContext(), "Cursor Success", Toast.LENGTH_LONG).show(); 

到:

DatabaseOperat DOP = new DatabaseOperat(CTX); 
    DOP.getWritableDatabase();   
    Cursor CR = DOP.getInfo(DOP); 
    CR.moveToFirst(); 
    while (!CR.isAfterLast()) { 


     Fnames.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.first_Name))); 
     Lnames.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.last_Name))); 
     Birthdates.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.sex))); 
     Sex.add(CR.getString(CR.getColumnIndex(TableDatas.TableInfo.birth_date))); 
     // Adding contact to list 

    } 
     CR.close(); 
     Toast.makeText(getApplicationContext(), "Cursor Success", Toast.LENGTH_LONG).show(); 

首先呼叫getWritableDatabase()和比的getInfo()

+0

非常感謝Patel Pinkal –

相關問題