2015-10-28 55 views
0

我創建一個表,並使用插入或替換本地數據庫的android SQL列,但它給我錯誤的Android的SQLite找不到存在

*

表EmployeeTable中有沒有列名爲activationCode(代碼1):,在編譯時:插入或替換爲 employeeTable(activationCode,userName,userType,lastSeen)VALUES ('6131313313','testingcheck','Employer','Tue Oct 27 10:04 :36 GMT + 05:30 2015');

*

我創建表的代碼:

sql = "CREATE TABLE " + EMPLOYEE_TABLE + "(" + COMMON_ID_COLUMN + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
      + ACTIVATION_CODE_COLUMN + "TEXT ," + USER_NAME_COLUMN + "TEXT ," + USER_TYPE_COLUMN + "TEXT,"+LAST_SEE_COLUMN + "Text);"; 

    db.execSQL(sql); 

} 

我的插入或更換代碼:

public void insertEmployeeDetails(String activationCode1 , String userName , String userType , String lastSeen) { 
    String sql1 = "insert or replace into " + EMPLOYEE_TABLE + "(" + ACTIVATION_CODE_COLUMN + " , " + USER_NAME_COLUMN + " , " + 
USER_TYPE_COLUMN +" , "+ LAST_SEE_COLUMN + ")" + "VALUES ('" +activationCode1 +"' , '" + userName + "' , '" + userType + "' , '"+ lastSeen + "');"; 

    getWritableDatabase().execSQL(sql1); 
} 

和回調代碼:

myDbHelper.insertEmployeeDetails(employerConstants.activationCode,employerConstants.userName, 
       employerConstants.userType , employerConstants.lastSeenon); 

列激活代碼存在但無法找出導致問題的原因?

+0

卸載該應用程序,並重新安裝:) – Amy

+0

@Amy爲什麼呢?向我們展示你的表格結構? – dsharew

+0

@DegenSharew:表結構是什麼意思? –

回答

3

使用以下代碼插入數據。

dataBase = getWritableDatabase(); 
cValues = new ContentValues(); 
cValues.put(ACTIVATION_CODE_COLUMN, activationCode1); 
cValues.put(USER_NAME_COLUMN, userName); 
cValues.put(USER_TYPE_COLUMN, userType); 
cValues.put(LAST_SEE_COLUMN, lastSeen); 
dataBase.insert(EMPLOYEE_TABLE, null, cValues); 
dataBase.close(); 

而且您創建的查詢包含錯誤

sql = "CREATE TABLE " + EMPLOYEE_TABLE + "(" + COMMON_ID_COLUMN + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
     + ACTIVATION_CODE_COLUMN + " TEXT, " + USER_NAME_COLUMN + " TEXT , " + USER_TYPE_COLUMN + " TEXT, "+LAST_SEE_COLUMN + " Text);"; 

複製上面的查詢,並與您的查詢替換 隨意發表評論

+0

在我創建的查詢中,我粘貼的錯誤是什麼?它可能可能是次要的,這就是爲什麼無法弄清楚請幫我瞭解它感謝名單 –

+1

後或文本之前保持空間,keywork –

+0

我代替我的創建與URS查詢,但仍給予同樣的錯誤): –

-1

讓你sqliteHelperClass擴展SQLiteOpenHelper。

例如

public SqliteHelper extends SQLiteOpenHelper { 
    public static final int VERSION = 1; 
    public static final String NAME = "your db name"; 

    public SqliteHelper(Context context) { 
     super(context, NAME, null, VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     // your db creates here 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // your db upgrade here 
     // ex) drop & create 
    } 

} 

這個助手類, 如果需要升級數據庫,只需改變Version值+ 1

我希望這是對你有幫助。

+0

我已經在使用它。我只發佈了命令代碼,但我的sqlite文件看起來一樣。所以,這不是問題。 Thanx –

+0

嘗試將此字符串sql1 =插入或替換爲「+ EMPLOYEE_TABLE +」(「+ USER_NAME_COLUMN +」,「+ USER_TYPE_COLUMN +」,「+ LAST_SEE_COLUMN +」)「+」VALUES(「+ userName +」' 「」 + USERTYPE + 「」, ' 」+ lastSeen + 「 ')其中, 」+ ACTIVATION_CODE_COLUMN +「='」 + activationCode1 +「'」;' – myoungjin

+0

activation_code已'autoincrement',用它根據'where' – myoungjin

3

我認爲這個問題是在你創建query..Try這SQL查詢創建表

sql = "CREATE TABLE " + EMPLOYEE_TABLE + " (" 
     + COMMON_ID_COLUMN + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
     + ACTIVATION_CODE_COLUMN + " TEXT, " 
     + USER_NAME_COLUMN + " TEXT, " 
     + USER_TYPE_COLUMN + " TEXT, " 
     + LAST_SEE_COLUMN + " TEXT);"; 

然後卸載和我安裝應用程序..它應該工作。

+0

不,它不適合我。 ): –

+0

@ young_08更正表格創建代碼後,您必須卸載並重新安裝您的應用程序 –

0

確保你有適當的空間在查詢中還,你可以從你的模擬器獲取整個數據,並可以檢查什麼是錯的,我有同樣的問題,那麼我搜索,並能後的數據庫從我的仿真器出口由於間隔在查詢中,我知道我的字段名稱不正確,因此我使用genymotion。如果需要,我可以粘貼從仿真器導出數據的過程。

+0

請大家幫忙。謝謝! –

+0

您是使用genymotion還是默認AVD –

+0

您好我在這裏發佈了這個程序。請檢查 –