2012-07-04 3 views
0

그래서 데이터베이스에서 데이터를 읽고 문자열에 데이터를 쓰는 두 개의 커서가 있지만 데이터베이스에 데이터가 저장된 경우에도 커서는 항상 비어 있습니다. 데이터베이스에 저장된 데이터가 SQLite 관리자와 함께 있는지 확인했습니다. 로그인 고양이 로그라는 것을 말합니다. "IF1을"과 "IF2가 실행 을 여기에 내가 사람을 잘못 찾을 수있는 희망, 내 코드입니다 ..SQL 쿼리는 데이터베이스에서 데이터를 읽지 않습니다

String var; 
final TextView t = (TextView) findViewById(R.id.textView2); 
final TextView t2 = (TextView) findViewById(R.id.textView3); 
Intent intent = getIntent(); 
var = intent.getStringExtra("datum"); 

SQLiteDatabase db = openOrCreateDatabase ("MyDB", MODE_PRIVATE, null); 

String q =" SELECT COALESCE (znak, '') as znak,COALESCE (sprava, '') as sprava, COALESCE(serija, '') as serija, COALESCE(podatak, '') as podatak, COALESCE(ponavljanja, '') as ponavljanja, vrijeme FROM tablica WHERE vrijeme LIKE '"+ var + "'" ; 
Cursor c = db.rawQuery(q, null);  

String xy = "SELECT vrijeme FROM tablica WHERE vrijeme LIKE '"+ var + "'"; 
Cursor dd = db.rawQuery(xy, null); 

if (dd.getCount() < 1) { 
    Log.d("LIST.DETAILS", "IF1"); 
    dd.close(); 
    db.close(); 
    Toast.makeText(NapredakActivity.this, "Empty!", Toast.LENGTH_SHORT).show(); 
    startActivity(new Intent(this, calendar.class)); 
} else { 
    String i = ""; 

    dd.moveToFirst(); 
    String st2 = dd.getString(dd.getColumnIndex("vrijeme")); 
    i = "Datum:" +"\t" + st2; 
    t2.setText(i); 
    dd.close(); 
} 

if (c.getCount() < 1) { 
    Log.d("LISTA.DETALJI", "IF2"); 
    c.close(); 
    db.close(); 
    Toast.makeText(NapredakActivity.this, "Empty!", Toast.LENGTH_SHORT).show(); 
    startActivity(new Intent(this, calendar.class)); 
} else { 
    String j = ""; 

    c.moveToFirst(); 
    do { 
     String cm55 = c.getString(c.getColumnIndex("sprava")); 
     String cm = c.getString(c.getColumnIndex("serija")); 
     String cm2 = c.getString(c.getColumnIndex("podatak")); 
     String cm3 = c.getString(c.getColumnIndex("ponavljanja")); 
     String cm_znak = c.getString(c.getColumnIndex("znak")); 

     j = j +cm55+ "\n" + cm + "\t" +cm2 +cm_znak + cm3 ; 
    } while (c.moveToNext()); 

    t.setText(j); 
    c.close(); 
    db.close(); 
} 

답변

1

나는 당신이 어디에서 와일드 카드 문자를 누락 생각 절 : 그렇지 않으면

"vrijeme LIKE '%"+ var + "%'" 

:

:

"vrijeme LIKE '"+ var + "'" 

가 같은가요

"vrijeme = '"+ var + "'" 

또한 영어가 귀하의 모국어가 아니지만 귀하의 변수 이름이 매우 이상하다고 생각합니다. 보다 설명적인 이름을 사용하는 것이 좋습니다. 단지 코드의 가독성을 높이는 데 도움이됩니다.

+0

감사합니다. 문제가되었습니다. 매우 도움이되었습니다. – user1414682

관련 문제