안드로이드 스튜디오 sqlite 관련

조회수 945회

안드로이드 스튜디오(2.3.3)로 어플 공부하고 있습니다. sqlite로 디비 구축해서 서비스 이름, 아이디, 비밀번호를 저장하려 하는데 입력이나 수정버튼만 누르면 애플리케이션이 종료됩니다.

public class MainActivity extends AppCompatActivity {

EditText edtName, edtNumber, edtNameResult, edtNumberResult, edtSerName, edtSerNameResult;
Button btnInit, btnInsert, btnUpdate, btnDelete, btnSelect, internet;
SQLiteDatabase db;
DBHelper dbHelper;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setTitle("비밀번호 관리 DB (수정)");

    dbHelper = new DBHelper(getApplicationContext());
    db = dbHelper.getWritableDatabase();

    btnInit.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            db = dbHelper.getWritableDatabase();
            dbHelper.onUpgrade(db, 1, 2 ); 
            db.close();
        }
    });

//여기가 입력버튼
    btnInsert.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View v) {
            db = dbHelper.getWritableDatabase();
            db.execSQL("INSERT INTO groupTBL VALUES ( '"
                    + edtSerName.getText().toString() + "' , "
                    + edtName.getText().toString() + "' , "
                    + edtNumber.getText().toString() + ");");
            db.close();
            Toast.makeText(getApplicationContext(), "입력됨",
                    Toast.LENGTH_SHORT).show();
            btnSelect.callOnClick();
        }
    });


//여기가 수정버튼
    btnUpdate.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            db = dbHelper.getWritableDatabase();
            if (edtName.getText().toString() != "") {
                db.execSQL("UPDATE groupTBL SET gNumber ="
                        + edtNumber.getText() + " WHERE gName = '"
                        + edtName.getText().toString() +
                        " WHERE gSerName = '"
                        + edtSerName.getText().toString() +"';");
            }
            db.close();

            Toast.makeText(getApplicationContext(), "수정됨",
                    Toast.LENGTH_SHORT).show();
            btnSelect.callOnClick();
        }
    });

    btnDelete.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            db = dbHelper.getWritableDatabase();
            if (edtSerName.getText().toString() != "") {
                db.execSQL("DELETE FROM groupTBL WHERE gSerName = '"
                        + edtSerName.getText().toString() + "';");

            }
            db.close();

            Toast.makeText(getApplicationContext(), "삭제됨",
                    Toast.LENGTH_SHORT).show();
            btnSelect.callOnClick();
        }
    });

    btnSelect.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            db = dbHelper.getReadableDatabase();
            Cursor cursor;
            cursor = db.rawQuery("SELECT * FROM groupTBL;", null);

            String strSerNames = "서비스이름" + "\r\n" + "--------" + "\r\n";
            String strNames = "아이디" + "\r\n" + "--------" + "\r\n";
            String strNumbers = "비밀번호" + "\r\n" + "--------" + "\r\n";

            while (cursor.moveToNext()) {
                strSerNames += cursor.getString(0) + "\r\n";
                strNames += cursor.getString(1) + "\r\n";
                strNumbers += cursor.getString(2) + "\r\n";
            }

            edtNameResult.setText(strNames);
            edtNumberResult.setText(strNumbers);
            edtSerNameResult.setText(strSerNames);

            cursor.close();
            db.close();
        }
    });


}

이게 메인액티비티구요 public class DBHelper extends SQLiteOpenHelper {

    public DBHelper(Context context) {
        super(context, "groupDB", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        try {
            db.execSQL("CREATE TABLE  groupTBL ( gSerName CHAR(20) PRIMARY KEY, gName TEXT, gNumber INTEGER);");
        }catch(Exception ex){

            ex.printStackTrace();

        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS groupTBL");
        onCreate(db);
    }
}
이게 디비 클래스입니다....!
  • 일단 디버그 모드로 해서 로그 찍어보세요 엽토군 2018.11.14 09:30
  • E/SQLiteLog: (1) unrecognized token: "' , );" 이렇게 뜨는데 어떻게 수정해야 할지 알 수 있을까요? minya 2018.11.14 21:12

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)