2017-05-15 3 views
-2

Guten Tag Sir/Ma'am, jedes Mal, wenn ich den Artikel Name, Artikelpreis und Artikelbeschreibung speichern drücken, stürzt meine App automatisch ab und auf den Hauptbildschirm gerichtet. Das ist der Fehler. Würde es dir etwas ausmachen, mir zu helfen?Barcode Scanner Android Sqlite

E/Android Runtime: fatal EXCEPTION: main Prozess: app.num.barcodescannerproject, PID: 15141 android.database.sqlite.SQLiteException: unerkannte Token: "8850007011743jumel50wew" (Code 1):, während Compilierung : INSERT INTO Scanergebnisse VALUES (8850007011743jumel50wew); bei android.database.sqlite.SQLiteConnection.nativePrepareStatement (Mutter Method) bei android.database.sqlite.SQLiteConnection.acquirePreparedStatement (SQLiteConnection.java:906) bei android.database.sqlite.SQLiteConnection.prepare (SQLiteConnection.java: 517) bei android.database.sqlite.SQLiteSession.prepare (SQLiteSession.java:588) bei android.database.sqlite.SQLiteProgram. (SQLiteProgram.java:58) bei android.database.sqlite.SQLiteStatement. (SQLiteStatement. Java: 31) bei android.database.sqlite.SQLiteDatabase.executeSql (SQLiteDatabase.java:1704) bei android.database.sqlite.SQLiteDatabase.execSQL (SQLiteDatabase.java:1635) bei App. num.barcodescannerproject.popupDialouge $ 1.onClick (popupDialouge.java:36) bei android.view.View.performClick (View.java:4909) bei android.view.View $ PerformClick.run (View.java:20390) bei android.os.Handler.handleCallback (Handler.java:815) bei android.os.Handler.dispatchMessage (Handler.java:104) bei android.os.Looper.loop (Looper.java:194) bei android .app.ActivityThread.main (ActivityThread.java:5877) bei java.lang.reflect.Method.invoke (systemeigene Methode) bei java.lang.reflect.Method.invoke (Method.java:372) bei com. android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:1020) bei com.android.internal.os.ZygoteInit.mai n (ZygoteInit.java:815) I/Prozess: Senden des Signals. PID: 15141 SIG: 9 Anwendung beendet.

Dies ist mein Code

save.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      SQLiteDatabase db = openOrCreateDatabase("barcodescan",MODE_PRIVATE,null); 
      db.execSQL("CREATE TABLE IF NOT EXISTS scanresults(barcode VARCHAR,item VARCHAR,price VARCHAR ,note VARCHAR);"); 
      db.execSQL("INSERT INTO scanresults VALUES("+Barcode+item.getText().toString()+itemPrice.getText().toString()+itemNote.getText().toString()+");"); 
      Toast.makeText(popupDialouge.this, "Item Saved", Toast.LENGTH_SHORT).show(); 
      finish(); 
     } 
    }); 
    cancel.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      finish(); 
     } 
    }); 
+0

Jedes Update ???? –

Antwort

1

Ich fürchte, Sie falsche Methoden für den Einsatz methods.Add ein Verfahren in der Schaltfläche klicken verwenden und unter Beispiel folgen.

public void InsertScanResult(String barcodeItem,String itemPrice,String itemNote) 
{ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues cv=new ContentValues(); 
    cv.put("BarCodeColumnNamed", barcodeItem); 
    cv.put("PriceColumnName",itemPrice); 
    cv.put("ItemColumnName", itemNote); 
    db.insert("YourTableNamed", null, cv); 
} 

können Sie erhalten Beispiel von Android SQLite Database Tutorial

+1

@Jumel Hermoso Dies wäre sehr nützlich für Sie, um mit SQLite zu beginnen. –

0

Ich glaube, Sie die Kommas vergessen:

db.execSQL("INSERT INTO scanresults VALUES('"Barcode+ "', '" +item.getText().toString()+"', '" + itemPrice.getText().toString()+"', '" +itemNote.getText().toString()+"');");

0

Ich glaube, Sie benötigen, um Ihre Strings in Ihrer SQL-Anweisung zu zitieren

siehe: this answer

0

Anstatt die rohe Anweisung unter Verwendung von db.execSQL() auszuführen, ist es besser, die am meisten bevorzugte integrierte Methode db.insert() zu insert Daten über ContentValues zu verwenden.

Aktualisieren Sie Ihre onClick() Methode wie folgt:

@Override 
public void onClick(View v) { 
    SQLiteDatabase db = openOrCreateDatabase("barcodescan",MODE_PRIVATE,null); 

    db.execSQL("CREATE TABLE IF NOT EXISTS scanresults(barcode VARCHAR, item VARCHAR, price VARCHAR , note VARCHAR);"); 

    // Data to be inserted 
    ContentValues values = new ContentValues(); 
    values.put("barcode", Barcode); 
    values.put("item", item.getText().toString()); 
    values.put("price", itemPrice.getText().toString()); 
    values.put("note", itemNote.getText().toString()); 

    // Insert data 
    db.insert("scanresults", null, values); 

    Toast.makeText(popupDialouge.this, "Item Saved", Toast.LENGTH_SHORT).show(); 
    finish(); 
} 

Hope this helfen ~

Verwandte Themen