2011-05-30 144 views
0

我想從edittext獲取數據,然後將其插入到sqlite中。 我現在所做的一樣android數據庫插入問題

ContentValues value=new ContentValues(); 
    value.put("Name",name); 
    value.put("id", password); 
    value.put("email",email); 
db.insert("EMP",null,value); 

名,密碼和電子郵件是變量,但由於沒有數據輸入到表中這是行不通的。

任何解決方案,請。

+0

首先檢查表是否已創建。 – Kakey 2011-05-30 09:04:31

+0

是的表中創建了三列名稱,ID和電子郵件。:-) – 2011-05-30 09:07:38

+0

是的,然後捕獲返回值db.insert – 2red13 2011-05-30 09:09:00

回答

1

您的代碼看起來不錯。插入函數返回新創建的行的ID。你可以測試一下,以檢查通話是否成功。值爲-1表示發生錯誤。

我有點擔心你有一個名爲id的字段,尤其是一個不是數字的字段。它應該沒問題,但_id是爲行ID保留的,而且你絕對不想去搞這個。

+0

其實錯誤是在sql連接code.Thanx爲你的幫助。 :-) – 2011-05-31 06:37:39

0

請嘗試傳遞_id作爲insert()的第二個參數,而不是null。

以下代碼在我的程序中正常工作。

dbSqlite.insert(tableName, DataBaseConstant.FIELD_ID, 
       initialValues); 

希望能幫助您解決您的問題。

+0

ki得到了答案this.actually錯誤是在sql connection.i使用兩個類來重新檢索相同的table.in,我個人使用的代碼SQLiteDatabase db = openOrCreateDatabase(「bivin.db」,SQliteDatabase。 CREATE_IF_NECESSORY,null)我用SQLiteOpenHelper類解決了它。感謝您的寶貴幫助。 – 2011-05-31 06:33:10

0

嘗試添加這三行

db.setVersion(1); 
    db.setLocale(Locale.getDefault()); 
    db.setLockingEnabled(true); 

您db.insert前行。

+0

實際上錯誤是在我的sql代碼。感謝您的幫助:-) – 2011-05-31 06:36:48

-1

如果db.insert()返回-1,則發生錯誤。 你必須檢查

  1. 字段存在於sqlite數據庫。
  2. 外鍵正確。
  3. 獨特的字段是正確的。
  4. 非空字段是正確的。
  5. 如果id是AUTOINCREMENT,則不需要填充它。