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

안드로이드 데이터베이스 insert부분 질문입니다.

0 추천

안녕하세요.

제가 지금 버튼을 누르면 데이터베이스에 값이 들어가게 만들고 있는데요.

로그캣은

12-03 13:25:12.663 12236-12236/? E/Zygote: MountEmulatedStorage()
12-03 13:25:12.663 12236-12236/? E/Zygote: v2

12-03 13:25:12.663 12236-12236/? E/SELinux: [DEBUG] get_category: variable seinfo: default sensitivity: NULL, cateogry: NULL

코드 부분은

button2.setOnClickListener(new OnClickListener() {
   @Override
    public void onClick(View v) {
       String temp1, temp2, temptotal;
        if (v.getId() == R.id.btok) {
            if (okcount == 0) {
                button2.setText("완료");
                text.setVisibility(v.VISIBLE);
                tView.setVisibility(v.INVISIBLE);
                text2.setVisibility(v.VISIBLE);
                tView2.setVisibility(v.INVISIBLE);
                okcount++;
            } else if (okcount == 1) {
                button2.setText("수정");
                text.setVisibility(v.INVISIBLE);
                tView.setVisibility(v.VISIBLE);
                text2.setVisibility(v.INVISIBLE);
                tView2.setVisibility(v.VISIBLE);
                temp1 = text.getText().toString();
                temp2 = text2.getText().toString();
                temptotal = temp1 + "\n" + temp2;
                tView.setText(temp1);
                tView2.setText(temp2);
                Timetable.table[Timetable.pint] = temptotal;
                Timetable.tview.setText(temptotal);
                Timetable.tview.setBackgroundColor(Color.parseColor("#bae9a7"));
                okcount = 0;
                dbManager.insert("insert into CLASS_LIST values(null, '" + temp1 + "','" + temp2 + "');");

이렇게 구조가 되었습니다.

코드 부분에서 dbManager.insert(~~~~) 부분을 지우면 버튼이 잘 동작합니다. 넣으면 else if 구문으로 넘어가는 버튼 클릭시 앱이 작동을 중지합니다.

고수분들 도움을 요청합니다.

읽어주셔서 감사합니다

insert함수를 설정한 클래스 코드는

public class DBManager extends SQLiteOpenHelper {

    public DBManager(Context context, String name, CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE CLASS_LIST( _id INTEGER PRIMARY KEY AUTOINCREMENT, temp1 TEXT, temp2 TEXT);");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db,int oldVersion, int newVersion) {
    }

    public void insert(String _query){
        SQLiteDatabase db = getWritableDatabase();
        db.execSQL(_query);
        db.close();

    }
}

 

입니다.

흰색으로 표시된 부분은 temp2입니다. 어쩌다보니 저렇게 올라와있네요 ㅠㅠ

 

익명사용자 님이 2015년 12월 3일 질문

1개의 답변

0 추천
사진 상으로 쿼리문이 짤려서 확실히 알수는 없지만 쿼리문이 잘못 작성되어있는 것 같습니다.

http://blog.naver.com/hg1286/220539030447

 

참고하시고 쿼리문에 오류가 없는지 확인해보시길 바랍니다.
Autopro (1,780 포인트) 님이 2015년 12월 6일 답변
...