2012-11-19 94 views
3
public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 
     db.execSQL("CREATE TABLE " + DATABASE_TABLE_COURSES + " (" 
       + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " 
       + KEY_COURSE_ID + " TEXT NOT NULL, " 
       + KEY_COURSE_TITLE + " TEXT NOT NULL, " 
       + KEY_COURSE_CNUMBER + " TEXT NOT NULL, " 
       + KEY_COURSE_SUBJECT + " TEXT NOT NULL, " 
       + KEY_COURSE_DAYS + " TEXT NOT NULL, " 
       + KEY_COURSE_START_TIME + " TEXT NOT NULL, " 
       + KEY_COURSE_END_TIME + " TEXT NOT NULL, " 
       + KEY_COURSE_PROFESSOR + " TEXT NOT NULL, " 
       + KEY_COURSE_BUILDING + " TEXT NOT NULL, " 
       + KEY_COURSE_ROOM_NUMBER + " TEXT NOT NULL);"); 

我想檢查一下,如果course_id已經存在於表中,那麼不要再進行其他輸入。 感謝Android SQlite,如何檢查數據庫中的值是否已經存在?

+0

您可以將它設置爲唯一約束,它將防止插入重複條目 – Lucifer

回答

4

要檢查如果一個字段一般的存在與否:

Cursor cur1=db.query("database_table_courses", "course_id=id_u_wanttocheck", null, null, null, null, null); 
     cur1.moveToLast(); 
     int count1=cur1.getCount(); 
     if(count1==0) 
     { 
      //course id not present 

     } 
     else 
     { 
     //course id present 
     } 


或者,如果你想COURSE_ID在表中從不重複,你可以設置爲主鍵並從row_no中刪除主鍵標籤。這樣你可以簡單地插入一個新行。如果course_id存在,它將不會插入並拋出異常 - 你可以捕捉它並做你想做的事。

+0

好的。我從Excel工作表中獲取數據並在我的一項活動中正確解析數據。當活動再次開始時,如何防止條目重複。這在活動的onCreate方法中發生 –

+0

@sukhpunjabi:將在if(count1 == 0)塊中創建條目的代碼。 – Ashwin

+0

@Ashwin db.query給出錯誤:錯誤的第二個參數類型。發現:'java.lang.String',必需:'java.lang.String []'' 您可以請發佈如何使用'SQLException'來完成。謝謝 – Beginner

相關問題