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

SQLite 에서 테이블 삭제 error입니다.

0 추천

테이블의 id로 삭제를 하려고 아래와 같이 코드를 작성했습니다. 그런데 에러가 뜨네요

id는 integer형식이고 primary key, autoincrement입니다.

 Button delete = (Button)findViewById(R.id.delete_button);
        EditText delete_text =(EditText)findViewById(R.id.delete_text);
        
        str_delete = delete_text.getText().toString();
        
        dbmanager = new DBManager(this);
        sqlitedb = dbmanager.getWritableDatabase();
        delete.setOnClickListener(new OnClickListener(){        	 
            @Override
            public void onClick(View v) { 
            	String sql = "delete from customers where id = "+str_delete+";";
            	sqlitedb.execSQL(sql);
            	sqlitedb.close();
            }
        });

 

---------------------erorr 내용-----------------------------

12-05 22:42:00.490: E/SQLiteLog(22868): (1) near ";": syntax error
12-05 22:42:00.490: D/AndroidRuntime(22868): Shutting down VM
12-05 22:42:00.490: W/dalvikvm(22868): threadid=1: thread exiting with uncaught exception (group=0x41d4cd58)
12-05 22:42:00.490: E/AndroidRuntime(22868): FATAL EXCEPTION: main
12-05 22:42:00.490: E/AndroidRuntime(22868): Process: com.example.aa201304326, PID: 22868
12-05 22:42:00.490: E/AndroidRuntime(22868): android.database.sqlite.SQLiteException: near ";": syntax error (code 1): , while compiling: delete from customers where id = ;
12-05 22:42:00.490: E/AndroidRuntime(22868): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
12-05 22:42:00.490: E/AndroidRuntime(22868): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
12-05 22:42:00.490: E/AndroidRuntime(22868): at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
12-05 22:42:00.490: E/AndroidRuntime(22868): at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
12-05 22:42:00.490: E/AndroidRuntime(22868): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
12-05 22:42:00.490: E/AndroidRuntime(22868): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
12-05 22:42:00.490: E/AndroidRuntime(22868): at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1672)
12-05 22:42:00.490: E/AndroidRuntime(22868): at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1603)
12-05 22:42:00.490: E/AndroidRuntime(22868): at com.example.customermgt.MainActivity$1.onClick(MainActivity.java:40)
12-05 22:42:00.490: E/AndroidRuntime(22868): at android.view.View.performClick(View.java:4473)
12-05 22:42:00.490: E/AndroidRuntime(22868): at android.view.View$PerformClick.run(View.java:18589)
12-05 22:42:00.490: E/AndroidRuntime(22868): at android.os.Handler.handleCallback(Handler.java:733)
12-05 22:42:00.490: E/AndroidRuntime(22868): at android.os.Handler.dispatchMessage(Handler.java:95)
12-05 22:42:00.490: E/AndroidRuntime(22868): at android.os.Looper.loop(Looper.java:136)
12-05 22:42:00.490: E/AndroidRuntime(22868): at android.app.ActivityThread.main(ActivityThread.java:5091)
12-05 22:42:00.490: E/AndroidRuntime(22868): at java.lang.reflect.Method.invokeNative(Native Method)
12-05 22:42:00.490: E/AndroidRuntime(22868): at java.lang.reflect.Method.invoke(Method.java:515)
12-05 22:42:00.490: E/AndroidRuntime(22868): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
12-05 22:42:00.490: E/AndroidRuntime(22868): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
12-05 22:42:00.490: E/AndroidRuntime(22868): at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
12-05 22:42:00.490: E/AndroidRuntime(22868): at dalvik.system.NativeStart.main(Native Method)
깐꼬 (190 포인트) 님이 2014년 12월 5일 질문

1개의 답변

0 추천
syntax 에러라고 보여주네요.
개발자초심 (21,220 포인트) 님이 2014년 12월 7일 답변
...