我有兩個表作爲USER_TABLE其中i具有所有用戶的詳細信息作爲用戶名,姓名等,並同樣地,我有一個名爲RESUME_TABLE
其中i有目的,度另一個表,大學等 兩個共同的列是KEY_USERID
(動態創建),我用這個ID匹配兩個表。SQLite數據庫誤差(毛刺在橋兩個表之間)
問:
我註冊一個用戶,他的信息被存儲在USER_TABLE,並說他的KEY_USERID
自動生成(主鍵)爲1,然後我創建一個使用相同的RESUME_TABLE
爲他的簡歷KEY_USERID 1
。從RESUME_TABLE
插入並從中檢索簡歷內容時,我傳遞從第一個表中獲取的KEY_USERID
作爲參數。
說,我對於其他用戶,從而產生KEY_USERID 2
再次做到這一點,但我只填寫了 USER_TABLE
和RESUME_TABLE是空。
當我重複這再次填充兩個表,那麼RESUME_TABLE
無法獲取數據導致第二用戶未在RESUME_TABLE
填寫相關信息,並充當故障而檢索KEY_USERID
爲第三用戶。
我該如何糾正?
CODE:
DBAdapter.java:
public String get_user_id(String name) {
String[] column = new String[]{KEY_USERID};
String where = KEY_USERNAME + "=?";
Cursor c = mDB.query(DATABASE_TABLE, column, where,new String[]{""+ name + ""}, null, null,null);
String user_id = "";
int iuser_id = c.getColumnIndex(KEY_USERID);
if (c != null)
c.moveToFirst();
user_id = user_id + c.getString(iuser_id) + "\t";
c.close();
return user_id;
}
ViewResume.java
if(get_from_create!=null)
{
if(get_from_create.hasExtra("UserId_Create"))
{
String user_id_create = get_from_create.getExtras().getString("UserId_Create"); // This is where i get the user id from the first table which is created dynamically.
dbAdapter.open();
Log.i("In_View Resume_from_create",user_id_create);
objective.setText(dbAdapter.getObjective(user_id_create));
degree.setText(dbAdapter.getDegree(user_id_create));
passed_out.setText(dbAdapter.getPassedOut(user_id_create));
university.setText(dbAdapter.getUniversity(user_id_create));
field.setText(dbAdapter.getField(user_id_create));
years_of_experience.setText(dbAdapter.getyears_of_experience(user_id_create));
areas_of_interest.setText(dbAdapter.getareas_of_interest(user_id_create));
dbAdapter.close();
}
注意:
KEY_USERID
自動遞增只爲USER_TABLE
而不是RESUME_TABLE
。
謝謝LS_dev。但get_from_create是一個意圖,很遺憾,因爲我忘了提到這一點。另外,你是否暗示我不應該將RESUME_TABLE中的KEY_USERID作爲主鍵? – San
是的,你應該,但不是自動! –