2013-03-23 45 views
7

Tôi gặp lỗi này khi biên dịch và tôi không biết tại sao, bất kỳ ai cũng có thể giúp tôi không?SQLiteException: gần "": lỗi cú pháp (mã 1) khi biên dịch

Chuỗi cuối cùng tĩnh công khai 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); 

này là dành cho tạo bảng

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 

gì đang xảy ra?

+1

'Chuỗi' phải được bao quanh bởi dấu ngoặc kép. '" SELECT _id, type, alcohol FROM "+ TABLE_BEERS +" WHERE company = '"+ compania +"' ";' –

Trả lời

8

thử mã dưới đây: - giá trị cột

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

bạn bỏ lỡ dấu nháy đơn ..

+0

nó hoạt động !! cảm ơn bạn – user2202906

+0

@ user2202906 thats great !!!!!! – duggu

+2

Nhận xét muộn, nhưng câu hỏi tôi có là tại sao SQLite không thể phát hiện ra rằng một trích dẫn đơn bị thiếu và đưa thực tế đó vào thông báo lỗi? Thông báo lỗi chúng tôi nhận được dường như đã được tạo ra sau khi đèn đã giảm xuống thật thấp. Vì vậy, nhiều người làm cho cùng một lỗi, và sau đó nó sẽ là thời gian cho người tạo ra các thông báo lỗi để cho nó chìm vào và suy nghĩ lại, phải không? – carl

1

chữ phải vượt qua trong dấu nháy đơn. Hãy thử theo các tham số

String selectQuery = "SELECT _id, type, alcohol FROM " + TABLE_BEERS + " WHERE company= '" + compania +"'"; 
Các vấn đề liên quan