2012-06-13 3 views
0

사실 지난 3 ~ 4 주 동안이 작업을하고 있지만 해결할 수는 없습니다. 내 활동에서 날짜 선택 관리자 컨트롤을 사용하는 안드로이드 Sqlite 데이터베이스에서 일하고있다 일단 사용자가 날짜를 설정하면 문자열에 날짜를 저장 한 다음 데이터베이스에 보내면 잘 작동하지만 나는 날짜 선택기 컨트롤에 설정 한 날짜를 기준으로 날짜를 검색하려고했으나 원하는 출력을 내 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

관련 문제