2012-06-18 30 views
1

我有應用程序與數據庫
我想進入數據庫之前檢查數據庫數據
如果從數據庫等於它不能進入​​,如果數據不等於可以在進入
數據這是我的一些代碼:檢查數據庫中的Android複製數據

public void saveData(){ 
    long tim = System.currentTimeMillis(); 
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss"); 
    String curTime = df.format(tim); 
    Cursor c = helper.getNoOrder(); 
    c.moveToFirst(); 
    if(c.getCount() != 0){ 
     System.out.println("klik"); 
     if(noOrder.getText().toString().equals(c.getString(0))){ 
      Toast.makeText(this, "No Order Sudah Terdaftar", Toast.LENGTH_LONG).show(); 
     }else{ 
      helper.insertBeli123(noOrder.getText().toString(), item.getText().toString(), 
        custName.getText().toString(), custTelp.getText().toString(), 
        qty.getText().toString(),temp.getText().toString(),temp.getText().toString(), 
        temp.getText().toString(), curTime); 
      Toast.makeText(this, "Data berhasil disimpan", Toast.LENGTH_LONG).show(); 
      finish(); 
     } 
    }else{ 
     helper.insertBeli123(noOrder.getText().toString(), item.getText().toString(), 
       custName.getText().toString(), custTelp.getText().toString(), 
       qty.getText().toString(),temp.getText().toString(),temp.getText().toString(), 
       temp.getText().toString(), curTime); 
     Toast.makeText(this, "Data berhasil disimpan", Toast.LENGTH_LONG).show(); 
     finish(); 
    } 
    //startActivity(new Intent(this,Direktori.class)); 
} 

在我DBhelper這樣的:

public void onCreate(SQLiteDatabase db) { 
    db.execSQL("CREATE TABLE tanda_terima (_id integer primary key AUTOINCREMENT,no_order text " + 
      ",item text,cust_id text,cust_name text,cust_telp text,quantity text,order_nik text" + 
      ",pengirim text,penerima text,gambar text,waktu_ambil datetime,flag integer)"); 
    db.execSQL("CREATE TABLE image (_id integer primary key AUTOINCREMENT,no_order text ,image text,tgl_buat datetime,flag integer)"); 
    db.execSQL("CREATE TABLE user (user text primary key,no_imei integer,password text)"); 
    db.execSQL("CREATE TABLE log_sync_tanda (no_order text primary key,status text ,waktu_sync datetime)"); 
    db.execSQL("CREATE TABLE log_sync_image (image text primary key,kdstore text,status text ,waktu_sync datetime)"); 
} 
public void insertBeli123(String no_order,String item,String cust_name 
     ,String cust_telp,String quantity,String pengirim,String penerima, 
     String gambar,String waktu){ 

    ContentValues cv = new ContentValues(); 
    cv.put("no_order", no_order); 
    cv.put("item", item); 
    cv.put("cust_name", cust_name); 
    cv.put("cust_telp", cust_telp); 
    cv.put("quantity", quantity); 
    cv.put("pengirim", pengirim); 
    cv.put("penerima", penerima); 
    cv.put("gambar", gambar); 
    cv.put("waktu_ambil", waktu); 

    getWritableDatabase().insert("tanda_terima", "name", cv); 
} 
    public Cursor getNoOrder(){ 
    return(getReadableDatabase().rawQuery("SELECT no_order FROM tanda_terima", null)); 
} 
+0

你可以給我舉一些例子@ariefbayu – akubabas

+0

我的主鍵是_id,我怎麼能在no_order中添加唯一? – akubabas

回答

0

檢查源代碼。它可以幫助你檢查重複的數據。

String sql = "select * from " 
       + TABLE_NAME + " WHERE placeId = '" + placeId + "'"; 
     Cursor cursorinfo = null; 
     try { 
      database = databaseHelper.getReadableDatabase(); 
      cursorinfo = database.rawQuery(sql, null); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 

     if (!cursorinfo.moveToFirst()) { 
         database = databaseHelper.getWritableDatabase(); 
      try { 
       database.insert(TABLE_NAME, "", values/// Here ContentValues); 
      } finally { 
       database.close(); 
       cursorinfo.close(); 
      } 
     } 

我認爲這對你有幫助。 感謝

+0

我把這段代碼放在我的Dbhelper或我的Activity中? – akubabas

+0

嗨,在這裏你想要的。我寫這個代碼的另一個類不是活動或DatabaseHelper類。 rawQuery之後檢查光標MoveFirst或不。如果Cursor不MoveFirst,那麼這些數據已經在數據庫中。 –

0

這裏開始,你需要在光標從數據庫中獲取整個數據

void insertInDatabase() 
{ 
    Cursor cursor=fetchDataFromDatabase(); 
    if(!cursor.getCount==0) 
    { 
     while(cursor.moveToNext()) 
      { 
       if(!(cursor.getString(1).equals("Harneet")) 
       { 
        dbAdapter.insert("Harneet"); 
        return; 
       } 
      } 
      System.println("Record ALready exists in Database"); 
    } 
    else 
    { 
       System.println("Empty Database"); 
       dbAdapter.insert("Harneet"); 
    } 
    } 

    /*Assume that we have two fields in database, one is Primary key and other is Name field*/ 

在DbHelper這樣寫:

插入數據庫值

 void insert(String name) 
    { 
      ContentValues cv=new ContentValues(); 
      cv.put("NAME",name); 
      getWritableDatabase.insert(TABLE_NAME,null,cv); 
    } 

擷取光標值

 public Cursor fetchDataFromDatabase() 
    { 
      String col[]={_id,name}; 
     getReadableDatabase.query(TABLE_NAME,col,null,null,null); 
    }