마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

쿼리문이 작동하지 않아요 ㅠㅠ

0 추천
@Override
 public void onClick(View v) {
  // TODO Auto-generated method stub
  int getId = v.getId();
  switch (getId) {
  case R.id.addbtn:
   intent = new Intent(ListviewMain.this, EditClass.class);

   startActivityForResult(intent, 0); // 에디트클래스의 엑티비티에서 다시
            // 돌아옴으로 포리조트함수사용

   break;
  case R.id.Searchbtn:

   // Intent intent = new Intent(ListviewMain.this, ServiceApp.class);

   SearchAdd = searchinput.getText().toString();
   Log.i("여기다", "여 " + SearchAdd);
   populateListView(SearchAdd);
   // EditText edit = (EditText)findViewById(R.id.edit);
   // TextView search;
   // EditText searchinput;
   // static String SearchAdd;

   break;
  default:
   break;
  }
 }

  public void populateListView(String s){

         DBHelper dbhelper = new DBHelper(this);
         db = dbhelper.getWritableDatabase();

  try {   

  Cursor c=db.rawQuery( "SELECT * FROM test WHERE contents='SearchAdd'", null);  
  Log.i("?","d"+c); 
   Log.i("d","ddd"+c.getCount() +","+ c.getCount());
  if(c.getCount()!=0 || c.getColumnCount() != 0)
  {
      if(c.moveToFirst())
      {
       Log.i("d","ddd");
          do {
              String title=c.getString(c.getColumnIndex("TITLE"));
              Log.i("d","d"+title);
              String contents=c.getString(c.getColumnIndex("CONTENTS"));
              arrayList.add("title :"+TITLE+"\n"+"contents :"+CONTENTS+"\n");

          } while (c.moveToNext());
      }
  } 
06-07 15:35:18.199: E/SpannableStringBuilder(21092): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
06-07 15:35:18.199: E/SpannableStringBuilder(21092): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
06-07 15:35:20.179: I/여기다(21092): 여 소
06-07 15:35:20.179: I/System.out(21092): opened database [test.db].
06-07 15:35:20.179: I/?(21092): dandroid.database.sqlite.SQLiteCursor@4312f7b8
06-07 15:35:20.179: I/d(21092): ddd0,0

private static final String Q_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS "
   + TB_NAME + " (_id INTEGER PRIMARY KEY AUTOINCREMENT " + ","
   + "title TEXT " + "," + "contents TEXT" + ");";




 

에러는 안뜨는데 ddd0,0이 뜨는걸 보면 비교문에 대한 오류 같습니다. ㅠㅠ

content를 직접 쓰는게 아니라 받아오는 문장인데 그래서 그런걸까요?? ㅜㅜ

 

초보 안드롱 (480 포인트) 님이 2014년 6월 7일 질문

1개의 답변

+1 추천
 
채택된 답변
table에 contents 컬럼에 값이 SearchAdd라는 값이 있나요??(Insert되 있나요?) 아님 = 보다 like를 사용해 보세요..
YeonMin (17,860 포인트) 님이 2014년 6월 7일 답변
초보 안드롱님이 2014년 6월 9일 채택됨
public void onClick(View v) {
        // TODO Auto-generated method stub
        int getId = v.getId();
        switch (getId) {
        case R.id.addbtn:
            intent = new Intent(ListviewMain.this, EditClass.class);

            startActivityForResult(intent, 0); // 에디트클래스의 엑티비티에서 다시
                                                // 돌아옴으로 포리조트함수사용

            break;
        case R.id.Searchbtn:

            // Intent intent = new Intent(ListviewMain.this, ServiceApp.class);

            SearchAdd = searchinput.getText().toString();
            Log.i("여기다", "여 " + SearchAdd);
            populateListView(SearchAdd);
            // EditText edit = (EditText)findViewById(R.id.edit);
            // TextView search;
            // EditText searchinput;
            // static String SearchAdd;

            break;
        default:
            break;
        }
    }

     public void populateListView(String s){

         DBHelper dbhelper = new DBHelper(this);
         db = dbhelper.getWritableDatabase();

  try {   

    Cursor c=db.rawQuery("SELECT count(*) FROM test"+" WHERE contents;", null);  
    Log.i("d","d"+c.getCount());
    
    if (c != null && c.getCount() != 0){{
        if(c.moveToFirst())
        {
            Log.i("d","ddd");
            do {
                adapter1 = new SimpleCursorAdapter(
                        getApplicationContext(),
                        android.R.layout.simple_list_item_2, c,
                        new String[] { "title", "contents" },
                        new int[] { android.R.id.text1,
                                android.R.id.text2 });
                listView.setAdapter(adapter1);
            } while (c.moveToNext());
        }
    }
보고 답을 늦게 해드려서 죄송합니다 ㅜㅜ
아예 쿼리문을 뜯어 고쳐보았습니다 ㅜㅜ 그런데 값이 들어 가는 것
 같지도 않고  cursor c 여기에 받아진 건지도 모르겠습니다 ㅠㅠ log.i를 넣어도 0으로 뜨구요 ㅠㅠ 3일 밤을 새는 중입니다 ㅠㅠ 제발 도와주세여 ㅠㅠㅠㅠㅠㅠ
Insert부분은 어디인가요?? Select where부분이 좀 이상한더..
public void insert (String title , String contents){
        db = mDBManager.getWritableDatabase();
        ContentValues val = new ContentValues();
        val.put("title", title);
        val.put("contents", contents);
        db.insert("test", null, val);

handler 클래스가  따로 있는데 그안에 들어있어요 ㅠㅠ
contents 가 내용부분인데 지금 잘못받아온건가요? ㅠㅠㅠ select where을 어떻게 고쳐야 될까요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠ
위의 소스대로라면 where contents 다음내용이 없는데..질문 소스에는 제대로 되 있는데 댓글 소스에는 없네요...?
정말 죄송한데 한번만 자세히 설명해 주시면 안될까요? ㅜㅜ
where contents안에 내용이 없다는게 무슨말인지 모르겠어요....
질문자 께서 질문글에 만든 쿼리는 SearchAdd라는 값을 검색하려는 쿼리문 입니다..코딩은 제대로 한것 같은데 값이 안나온다면 contents컬럼에 SearchAdd라는 값이 없다는 것이죠..이 경우는 코딩이 잘못됬거나 select하기전에 insert나 update가 제대로 이뤄지지 않아 SearchAdd라는 값이 contents에 들어가지 않았다는 거죠..댓글에서 나온 쿼리문은 Where contents다음에 = 혹은 like를 사용해서 뭐가 값을 찾아야 하는데 그 부분이 없다는 말이었습니다..
겨우겨우 searchadd안에 값이 들어가게는 했는데 이번에는 어댑터에 목록이 뜨지 않네요.. ㅜㅜ 그래도 감사합니당
...