android — android.database.sqlite.SQLiteException: рядом с «SELECT»: синтаксическая ошибка (код 1): при компиляции: SELECT * FROM Table_Name" />

android.database.sqlite.SQLiteException: рядом с «SELECT»: синтаксическая ошибка (код 1): при компиляции: SELECT * FROM Table_Name

Я получаю android.database.sqlite.SQLiteException: рядом с «SELECT»: синтаксическая ошибка (код 1): во время компиляции: SELECT * ИЗ университетов Ошибка.

У меня есть следующие классы

Пользовательский класс как

public class User {
    private int univ_id;

    private String univ_name, univ_abbr;

    public User(int univ_id, String univ_name, String univ_abbr) {

        this.univ_id = univ_id;
        this.univ_name = univ_name;
        this.univ_abbr = univ_abbr;
    }

    public User(String univ_name, String univ_abbr) {

        this.univ_name = univ_name;
        this.univ_abbr = univ_abbr;
    }

    public User() {
        // TODO Auto-generated constructor stub
    }

    public int getUniv_id() {
        return univ_id;
    }

    public void setUniv_id(int univ_id) {
        this.univ_id = univ_id;
    }

    public String getUniv_name() {
        return univ_name;
    }

    public void setUniv_name(String univ_name) {
        this.univ_name = univ_name;
    }

    public String getUniv_abbr() {
        return univ_abbr;
    }

    public void setUniv_abbr(String univ_abbr) {
        this.univ_abbr = univ_abbr;
    }
}

DBStorageFirst Class as

public class DBStorageFirst extends SQLiteOpenHelper {

    public static final String DATABASE_NAME = "STUPIDSID_OFFLINE_DB";

    public static final String TABLE_NAME_UNIVERSITIES = "universities";


    public static final String COLUMN_UNIV_ID = "univ_id";
    public static final String COLUMN_UNIV_NAME = "univ_name";
    public static final String COLUMN_UNIV_ABBR = "univ_abbr";

    public DBStorageFirst(Context context) {
        super(context, DATABASE_NAME, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("create table " + TABLE_NAME_UNIVERSITIES
                + "(" + COLUMN_UNIV_ID + " integer RIMARY KEY," + COLUMN_UNIV_NAME
                + " text," + COLUMN_UNIV_ABBR + " text )");
        Log.e("Success", "Universities Table Created");

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME_UNIVERSITIES);

        onCreate(db);
    }

    public void addUniversities(int univ_id, String univ_name, String univ_abbr) {
         SQLiteDatabase db = this.getWritableDatabase();
        String sql1 = "insert into " + DBStorageFirst.TABLE_NAME_UNIVERSITIES
                + " (" + DBStorageFirst.COLUMN_UNIV_ID + ","
                + DBStorageFirst.COLUMN_UNIV_NAME + ","
                + DBStorageFirst.COLUMN_UNIV_ABBR + ")" + " values(" + univ_id
                + ",'" + univ_name + " ','" + univ_abbr + "')";
        db.execSQL(sql1);
        // database.execSQL(sql2);
        Log.e("Success", "Data inserted Successfully into Universities Table");
    }

    public List<User> getAllContacts() {
        List<User> contactList = new ArrayList<User>();

        String selectQuery = "SELECT * FROM "+TABLE_NAME_UNIVERSITIES;
        SQLiteDatabase db1 = this.getWritableDatabase();
        Cursor cursor = db1.rawQuery(selectQuery, null);
        if (cursor.moveToFirst()) {
            do {
                User contact = new User();
                contact.setUniv_id(Integer.parseInt(cursor.getString(0)));
                contact.setUniv_name(cursor.getString(1));
                contact.setUniv_abbr(cursor.getString(2));
                contactList.add(contact);
            } while (cursor.moveToNext());
        }
        return contactList;
    }
}

И MainActivity as

DBStorageFirst db = new DBStorageFirst(this);

// Inserting Contacts
Log.d("Insert: ", "Inserting ..");
db.addUniversities(25, "ABC", "UA");
db.addUniversities(26, "DEF", "UB");
List<User> list = new ArrayList<User>();
list = db.getAllContacts();

for (User cn : list) {
    String log = "Id: " + cn.getUniv_id() + " ,Name: "
            + cn.getUniv_name() + " ,Abbr: " + cn.getUniv_abbr();
    // Writing Contacts to log
    Log.d("Name: ", log);
}
4 голоса | спросил user3062869 1 PM000000120000004631 2014, 12:10:46

2 ответа


0

Похоже, пробел после SELECT - это не обычный пробел (0x20), а какой-то другой символ, например неразрывный пробел 0xa0). Замените его обычным пробелом.

ответил laalto 1 PM000000120000000631 2014, 12:15:06
0

Теоретически, SELECT должно быть прекрасно. Однако после сообщения об ошибке в сообщении об ошибке есть пробел, поэтому возможно, что вы ввели неразрывный пробел или какой-либо другой управляющий символ.

В любом случае, чтобы избежать подобных проблем с форматированием, лучше использовать вспомогательную функцию, например запрос :

 Cursor cursor = db1.query(TABLE_NAME_UNIVERSITIES, null,
                          null, null, null, null, null);
ответил CL. 1 PM000000120000001431 2014, 12:17:14

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132