2017-11-13 11 views
0

私は、SQLiteのバックグラウンドデータベースを持っている私のアンドロイドアプリケーションで主キーで行を削除することに関して少し問題がありました。プライマリキーで行を削除する - SQLite Android

私は6行のタイプがあります。例えばS1、S2、S3などです。私は一度に6行しか持てないので、私のデータベースには6行しかありません。アプリケーションの各ボタンの横に「X」ボタンがあり、S1の横にある「X」ボタンをクリックすると、主キー「S1」の行がデータベースから削除されます。

私は速い解決策があると思いますが、iveは私のクエリをさまざまな方法で操作しようとしましたが、正しい答えを得ることはできません。

DBヘルパー::

public void deleteProgressBar4() { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    db.delete(TABLE_NAME, COL_2 + "=", new String[]{"S1"}); 
    return; 
} 

COL_2を介した線種..です

Xボタンコード:

builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
               @Override 
               public void onClick(DialogInterface dialog, int which) { 
                myDb.deleteProgressBar4(); 
                Toast.makeText(Dashboard.this, "Line S1 Cleared!", Toast.LENGTH_SHORT).show(); 
               } 
              }); 
ここ

は、私が持っているいくつかのコードです

1つは私が削除機能で作っている間違いを参照してください?ここで私はこれを実行すると、私は取得していますエラーは次のとおりです。

android.database.sqlite.SQLiteException:近い "=":構文エラー(コード1):、コンパイル中:LINETYPEは= でpharma_tracker_table。DELETE FROM (SQLiteConnection.java:500) (英語) android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)android.database.sqlite.SQLiteProgramの (SQLiteProgram.java:58)androの (SQLiteDatabase.java:1499) at com.almac.tracker.DatabaseHelper.deleteProgressBar4(DatabaseHelper.java:141) ) at com.almac.tracker.Dashboard $ 6 $ 1.onClick(Dashboard.java:219) android.support.v7.app.AlertController $ ButtonHandler.handleMessage(AlertController.java:162) android.os.Handler .dispatchMessage(Handler.java:102) とandroid.os.Looper.loop(Looper.java:154) とandroid.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method .invoke(ネイティブメソッド) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit。 java:866) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) アプリケーションが終了しました。

ありがとうございます!

+1

使用 ' "=? "'ではなく '" ="' – pskink

+0

おかげで@pskink!その作品 – TheAlmac2

答えて

-1

ただ、テーブル名とカラム名にあなたと

を交換し
SQLiteDatabase db = this.getWritableDatabase(); 
    long i =db.delete("tableName", "column Name = ?", new String[]{String.valueof(Id)}); 
関連する問題