2013-03-23 11 views
7

Ich habe diesen Fehler beim Kompilieren und ich weiß nicht warum, kann mir jemand helfen?SQLiteException: in der Nähe von "": Syntaxfehler (Code 1) beim Kompilieren

public static final Zeichenfolge TABLE_BEERS = "cervezas";

// Contacts Table Columns names 
public static final String KEY_NAME = "_id"; 
public static final String KEY_COMPANY = "company"; 
public static final String KEY_TYPE = "type"; 
public static final String KEY_ALCOHOL = "alcohol"; 


public DatabaseHandler(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    // TODO Auto-generated constructor stub 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 

    String query = String.format("CREATE TABLE %s (%s STRING PRIMARY KEY,%s TEXT, %s TEXT, %s TEXT);", 
      TABLE_BEERS, KEY_NAME, KEY_COMPANY, 
      KEY_TYPE, KEY_ALCOHOL); 

    /* 
    String CREATE_BEER_TABLE = "create table " + TABLE_BEERS + "(" 
      + KEY_NAME + " STRING PRIMARY KEY," 
      + KEY_COMPANY + " TEXT," 
      + KEY_TYPE + " TEXT," 
      + KEY_ALCOHOL + " TEXT)";*/ 
    db.execSQL(query); 

Dies ist für die Tabelle erstellen

public List<Cervezas> getCompanyCervezas(String compania){ 

      List<Cervezas> cervezasList = new ArrayList<Cervezas>(); 
      // Select All Query 
      String selectQuery = "SELECT _id, type, alcohol FROM " + TABLE_BEERS + " WHERE company=" + compania; 

      SQLiteDatabase db = this.getReadableDatabase(); 
      Cursor cursor = db.rawQuery(selectQuery, null); 

LogCat

android.database.sqlite.SQLiteException: no such column : Alean (code 1): , while compiling: SELECT _id, type, alcohol FROM cervezas WHERE company=Alean 

Was geschieht?

+1

'String' Parameter müssen in Anführungszeichen gesetzt werden. '" SELECT _id, Typ, Alkohol FROM "+ TABLE_BEERS +" WHERE Firma = '"+ compania +"' ";' –

Antwort

8

versuchen Code unten: -

String selectQuery = "SELECT _id, type, alcohol FROM " + TABLE_BEERS + " WHERE company= ' " + compania+" ' "; 

Sie einfache Anführungszeichen verpassen ..

+0

es funktioniert !! danke – user2202906

+0

@ user2202906 das ist toll !!!!!! – duggu

+2

Später Kommentar, aber die Frage, die ich habe, ist, warum SQLite ist so nicht in der Lage zu erkennen, dass ein einzelnes Zitat fehlt und setzen diese Tatsache in die Fehlermeldung? Die Fehlermeldung, die wir bekommen haben, scheint entstanden zu sein, nachdem die Lichter wirklich tief gefallen sind. So viele Leute machen den gleichen Fehler, und dann sollte es Zeit für den Ersteller der Fehlermeldung sein, um es zuzulassen und neu zu denken, nicht? – carl

1

Text Spaltenwerte in einfache Anführungszeichen passieren muss. Versuchen Sie folgendes:

String selectQuery = "SELECT _id, type, alcohol FROM " + TABLE_BEERS + " WHERE company= '" + compania +"'"; 
Verwandte Themen