숫자로 입력하면 넣은대로 뜨는데 원하던데로 문자를 입력하면 자꾸 no such column 에러가 뜹니다.

 

========== JoinActivity.java 파일 ===========

 

try {
   // DB객체 생성(DB가 존재하지 않으면 생성함)
   dbmgr = new DBManager (this);
   SQLiteDatabase sdb;
   
   // DB연결
   sdb = dbmgr.getWritableDatabase();
   // members 테이블에 추출정보 추가
   sdb.execSQL("insert into members values(" + 999 + "," + "2" +"," + "3" + "," + "456" + ");");  //<== 요기에 숫자가 아니고 문자를 넣고자합니다
   // sdb.execSQL(str_name +"," + str_sex + "," + str_sms + "," + str_interest);
   // DB닫음
   dbmgr.close();
  } catch (SQLiteException e) {
   // 예외처리 (생략)
  }

 

 

========== QueryActivity.java 파일 ==========

 

try {
         DBManager dbmgr = new DBManager(this);
         //DB연결
         SQLiteDatabase sdb = dbmgr.getReadableDatabase();
         //SQL문 실행 결과를 Cursor 객체로 받음
         Cursor cursor = sdb.rawQuery("select name, sex, sms, interest from members", null);
         //cursor 객체로 할당된 members 테이블 데이터를 한 행씩 이동하면서 출력함
         while (cursor.moveToNext()) {
          //행의 첫번째 열(0), ...., 네 변째 열(3)을 각각 추출함
          String name  = cursor.getString(0);
          String sex  = cursor.getString(1);
          String sms  = cursor.getString(2);
          String interest = cursor.getString(3);
          
          //TextView로 데이터를 추가하면서 출력함
          tv_list.append((String)name + "\n");
          tv_list.append((String)sex + "\n");
          tv_list.append((String)sms + "\n");
          tv_list.append((String)interest + "\n");
          
          i++;
         }
         
         // Cursor 객체닫음
         cursor.close();
         // dbmgr 객체닫음
         dbmgr.close();
        } catch (SQLiteException e) {
         // DB접속 또는 조회시 에러 발생할때
         tv_list.append("DB 에러입니다");
        }

 

 

========== DBManager.java 파일 =============

 

package com.andro.dbproj;
import android.content.Context;
import android.database.sqlite.*;

public class DBManager extends SQLiteOpenHelper {
 public DBManager (Context context) {
  super(context, "myDB", null, 1);
 }
 
 @Override
 public void onCreate(SQLiteDatabase db) {
  db.execSQL("create table members (name text, sex text, sms text, interest text);");
 }
 
 @Override
 public void onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion){
 }
}

 

 

 

숫자를 넣으면 괜찮은데 (따옴표 유무 상관없이) str_name 요런거 넣어서 문자넣으면

아래와같이 오류메세지가 뜹니다.

02-21 14:01:26.692: I/Database(477): sqlite returned: error code = 1, msg = no such column: aaa
02-21 14:01:26.692: E/Database(477): Failure 1 (no such column: aaa) on 0x59d568 when preparing 'insert into members values(aaa,2,3,456);'.

조언 부탁드립니다 ㅠ.ㅜ