ошибка при создании БД SQLite - PullRequest
0 голосов
/ 13 февраля 2012

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

LogCat:

01-23 20: 20: 15.532: E / База данных (2322): Ошибка вставки uName = xxxx wUrl = xxxxxxxx sName = xxxx pWord= xxxx

01-23 20: 20: 15.532: E / Database (2322): android.database.sqlite.SQLiteException: в таблице infoTable нет столбца с именем uName: при компиляции: INSERT INTO infoTable (uName,wUrl, sName, pWord) VALUES (?,?,?,?);

Создание БД:

        String sqlDataStore = "create table if not exists " +
        TABLE_NAME_INFOTABLE + " ("+ BaseColumns._ID + " integer primary key autoincrement,"

                    + COLUMN_NAME_SITE + "text not null,"
                    + COLUMN_NAME_ADDRESS + "text not null,"
                    + COLUMN_NAME_USERNAME + "text not null,"
                    + COLUMN_NAME_PASSWORD + "text not null)";

        db.execSQL(sqlDataStore);

Вот мой класс:

public class dataStore extends storeSQLiteOpenHelper {

//Table attributes
public static final String DATABASE_NAME = "SiteLogindb";
public static final int DATABASE_VERSION = 1;
public static final String TABLE_NAME_INFOTABLE = "infoTable";

// Data attributes
public static final String COLUMN_NAME_SITE = "sName";
public static final String COLUMN_NAME_ADDRESS = "wUrl";
public static final String COLUMN_NAME_USERNAME = "uName";
public static final String COLUMN_NAME_PASSWORD = "pWord";


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

Ответы [ 5 ]

0 голосов
/ 14 февраля 2012

проблема была решена путем удаления базы данных из эмулятора.

Перейдите в DDMS, затем в проводник, затем откройте данные -> ---> data -> затем ваш пакет ---> затем базу данных, и здесь у вас есть база данных, и вы можете удалить ее, нажав минус "- знак сверху справа.

0 голосов
/ 14 февраля 2012

См. Ниже:

        String sqlDataStore = "create table if not exists " +
        TABLE_NAME_INFOTABLE + " ("+ BaseColumns._ID + " integer primary key autoincrement,"

                    + COLUMN_NAME_SITE + " text not null,"
                    + COLUMN_NAME_ADDRESS + " text not null,"
                    + COLUMN_NAME_USERNAME + " text not null,"
                    + COLUMN_NAME_PASSWORD + " text not null);";

        db.execSQL(sqlDataStore);
0 голосов
/ 13 февраля 2012

ставьте точку с запятой в конце определения таблицы, как здесь, она решает вашу проблему

TABLE_NAME_INFOTABLE + " ("+ BaseColumns._ID + " integer primary key autoincrement,"

                        + COLUMN_NAME_SITE + "text not null,"
                        + COLUMN_NAME_ADDRESS + "text not null,"
                        + COLUMN_NAME_USERNAME + "text not null,"
                        + COLUMN_NAME_PASSWORD + "text not null);";
0 голосов
/ 13 февраля 2012

Здесь вам не хватает пробела после двойных кавычек перед текстом " text.....

+ COLUMN_NAME_SITE + " text not null,"
+ COLUMN_NAME_ADDRESS + " text not null,"
+ COLUMN_NAME_USERNAME + " text not null,"
+ COLUMN_NAME_PASSWORD + " text not null)";

надеюсь, это поможет

0 голосов
/ 13 февраля 2012

Попробуйте изменить DB_Version на 2:

public static final int DATABASE_VERSION = 2;
...