我正在構建一個簡單的應用程序,它存儲一些聯繫人並在android手機設備中檢索聯繫人。表名在Android設備的SQLite數據庫爲空
我已經創建了我自己的數據庫和一個表,並將值插入到手機中的表中。
我的手機沒有植根。所以我無法訪問這些文件,但是我發現這些值存儲在表中。並在仿真器上進行測試。直到這裏,它是好的。
通過從表中提取數據來顯示列表中的所有聯繫人。這也很好。
但問題是當我試圖刪除記錄時,它顯示錶名在logcat中爲空(不是例外),並且數據不會被刪除。但在模擬器中,數據從表中刪除。我無法通過電話達到此目的。
這是我刪除代碼,
public boolean onContextItemSelected(MenuItem item) {
super.onContextItemSelected(item);
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item
.getMenuInfo();
int menuItemIndex = item.getItemId();
String[] menuItems = getResources().getStringArray(R.array.menu);
String menuItemName = menuItems[menuItemIndex];
String listItemName = Customers[info.position];
if (item.getTitle().toString().equalsIgnoreCase("Delete")) {
Toast.makeText(
context,
"Selected List item is: " + listItemName + "MenuItem is: "
+ menuItemName, Toast.LENGTH_LONG).show();
DB = context.openOrCreateDatabase("CustomerDetails.db",
MODE_PRIVATE, null);
try {
int pos = info.position;
pos = pos + 1;
Log.d("", "customers[pos]: " + Customers[info.position]);
Cursor c = DB
.rawQuery(
"Select customer_id,first_name,last_name from CustomerInfo",
null);
int rowCount = c.getCount();
DB.delete(Table_name,
"customer_id" + "=" + String.valueOf(pos), null);
DB.close();
Log.d("", "" + String.valueOf(pos));
Toast.makeText(context, "Deleted Customer", Toast.LENGTH_LONG)
.show();
// Customers[info.position]=null;
getCustomers();
} catch (Exception e) {
Toast.makeText(context, "Delete unsuccessfull",
Toast.LENGTH_LONG).show();
}
}
這是我的logcat,
07-02 10:12:42.976: D/Cursor(1560): Database path: CustomerDetails.db
07-02 10:12:42.976: D/Cursor(1560): Table name : null
07-02 10:12:42.984: D/Cursor(1560): Database path: CustomerDetails.db
07-02 10:12:42.984: D/Cursor(1560): Table name : null
不知道爲什麼數據沒有被刪除的原因。數據存在於表中。
請更正我的代碼。 任何幫助表示讚賞!
是什麼''TABLE_NAME的值,你不需要指定數據庫名稱.db的推廣。 – Lucifer
@Lucifier,我這樣指定Table_name的值:String Table_name =「CustomerInfo」;它是一個全球性聲明。 – Mahe
雅,我認爲是這樣,你的customer_id字段的數據類型是什麼? – Lucifer