2012-06-13 24 views
0

其實我在這最後3或4周工作,但無法解決它。 我正在使用Sqlite數據庫在android中我已經在我的活動中使用日期選擇器控件一旦用戶設置日期然後我將日期存儲到字符串,然後將其發送到數據庫它工作正常,但是當我試圖根據在日期選擇器控件上設置的日期檢索日期,然後它不給我所需的輸出,它顯示了僅在我的catlog上打開數據庫的一行。如何匹配或比較日期字符串與Android中的sqlite中存儲的日期?

數據庫類

//Table Definition with Columns 
private static final String CREATE_MYCOMPANY = 
    "create table company " + " (" + "_id" + " integer primary key autoincrement, " 
    + "company_date" +" date);"; 


//Insert Method 
public long create(String str) { 

    ContentValues args = new ContentValues(); 
    args.put(KEY_COMPANY_DATE, str); 

    return mDb.insert(MYCOMPANY, null,args); 
} 




//Method For Fetching the row on the basis of Date.// 
    public Cursor fetchdate(String datr) throws SQLException, ParseException { 

    Cursor mCursor = 
     mDb.query(true, MYCOMPANY, new String[] {KEY_COMPANY_ID, 
       KEY_COMPANY_DATE}, KEY_COMPANY_DATE /*+" BETWEEN date('2012-6-10') AND date('2012-6-14')"*/ 
       + " = " + datr, null, 
       null, null, null, null); 

    if (mCursor != null) { 
     mCursor.moveToFirst(); 
    } 


    return mCursor; 

} 

活動類代碼

//Date picker 
DatePicker dt = (DatePicker)findViewById(R.id.datePicker1); 

//Converting the Date into the string format 
String day = String.valueOf(dt.getYear())+"-" +String.valueOf(dt.getMonth() + 1) 
      +"-"+String.valueOf(dt.getDayOfMonth()); 


//Method for displaying the rows of table on date basis 
public void DisplayAllCmpData(){ 

     employeeTable.open(); 
     try{ 
      Cursor c = employeeTable.fetchdate("2012-6-13"); 
      if (c.moveToFirst()) 
      { 
      do { 
       System.out.println("bool2"); 
       DisplayCmpTitle(c); 
       } while (c.moveToNext()); 
      } 
     }catch(Exception e){ 
     System.out.println(e); 
    Toast.makeText(this,e.toString(),Toast.LENGTH_LONG).show(); 
      } 
     employeeTable.close(); 
    } 

//Function For Displaying the all record.//  
    public void DisplayCmpTitle(Cursor c) 
    { 

    System.out.println("bool"); 
     Toast.makeText(this, 
      "ID: " + c.getString(0) + "\n" + 
      "DATE: " + c.getString(1) 
      , Toast.LENGTH_LONG).show(); 

    } 

感謝提前任何幫助!!!!!!

回答

0
mDb.query(true, MYCOMPANY, new String[] {KEY_COMPANY_ID, 
       KEY_COMPANY_DATE}, KEY_COMPANY_DATE /*+" BETWEEN date('2012-6-10') AND date('2012-6-14')"*/ 
       + " = '" + datr+"'", null, 
       null, null, null, null); 
+0

謝謝答案!即使我已經多次使用它來實現相同的事情,一件小事也需要很多時間。 – user1300242

+0

不客氣 – Rasel