Android - ошибка синтаксиса SQL - PullRequest
       2

Android - ошибка синтаксиса SQL

1 голос
/ 20 сентября 2011

Вот мой код с удаленными несвязанными материалами:

public class DataManager extends SQLiteOpenHelper
{
    private final static String DB_TABLE = "Nums";
    private ContentValues initialValues;
    private static SQLiteDatabase myDB;

    public DataManager()
    {
        initialValues = new ContentValues();
        if(null != myDB)
        {myDB.close();}
        myDB = getWritableDatabase();   // This causes NullPointerException which is next on my TODO list
    }

    public void addValues(String num, String val)
    {
        initialValues.clear();
        initialValues.put(num,val);
        myDB.insert(DB_TABLE, null, initialValues); // THIS LINE CAUSES ERROR
    }
}

Я могу CREATE базу данных, но я не могу INSERT без этой ошибки: android.database.sqlite.SQLiteException: near "1": syntax error: , while compiling: INSERT INTO Nums(1) VALUES(?);

Таблица базы данных Nums выглядит так:

Num | Val
=========
1   |   23
2   |   34
3   |   6
4   |   3
5   |   5
6   |   56
7   |   34
8   |   45
9   |   32
10  |   23

Как видите, я пытаюсь создать базу данных со списком чисел от 1 до> n, где каждое число имеет значение рядом с ним. Все значения в базе данных String. Была причина, по которой я не выбрал INT, но сейчас не могу вспомнить ....: (

Может кто-нибудь увидеть, где мой синтаксис неправильный? Мой телефон рутирован, поэтому я могу использовать приложение SQLite Browse для просмотра базы данных, и таблица создана, она просто пуста!

Спасибо.

1 Ответ

2 голосов
/ 20 сентября 2011

Синтаксис для put - ContentValues.put (columnName, value). Попробуйте следующий код.

public void addValues(String num, String val)
{
    initialValues.clear();
    initialValues.put("Num",num);
    initialValues.put("Val",val);
    myDB.insert(DB_TABLE, null, initialValues); 
}

Так же, как некоторые полезные советы, вам не нужно сохранять ссылку на myDb. Вы всегда можете просто вызвать getWritableDatabase () внутри вашего SqlLiteOpenHelper.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...