@Cpper

Ошибка записи в SQLite?

Выдает ошибку записи в бд. Все проверял, но ошибку найти не смог. Тестировал на реальном устройстве, без подключения через студию. Поэтому стактрейса нет. Извините. Код прилагаю. Подскажите пожалуйста в чем ошибка
Класс-помощник:
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;



public class AvlsdeviceHelper extends SQLiteOpenHelper{

    public static final int DATABASE_VERSION = 1;
    public static final String DATABASE_NAME = "AveliskDb";
    public static final String TABLE_NAME = "Avls";

    public static final String KEY_ID = "_id";
    public static final String KEY_NAME = "name";
    public static final String KEY_MAC = "mac";
    public static final String KEY_PASS = "pass";

    public AvlsdeviceHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }


    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE " + TABLE_NAME + "(" + KEY_ID
                + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," + KEY_MAC + " TEXT," + KEY_PASS + " INTEGER" + ")");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);
    }
}

Функция записи, вызывается из handler:
public void dataBase(){
        Avlsdevicehelper myhelper;
        myhelper = new AvlsdeviceHelper(this);
        ContentValues cv = new ContentValues();

        String name = kontroller.getText().toString();
        String mac = MacAdress;
        int pass = parol;

        SQLiteDatabase db = myhelper.getWritableDatabase();

        cv.put(AvlsdeviceHelper.KEY_NAME, name);
        cv.put(AvlsdeviceHelper.KEY_MAC, mac);
        cv.put(AvlsdeviceHelper.KEY_PASS, pass);

        long y = db.insert(AvlsdeviceHelper.TABLE_NAME, null, cv);
        if(y == -1){
            Toast.makeText(this, "Ошибка", Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(this, "Записано в строку " + y, Toast.LENGTH_SHORT).show();
        }
        myhelper.close();
        db.close();
        cv.clear();
    }
  • Вопрос задан
  • 139 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Neonoviiwolf
Flutter developer
пробелов не хватает походу
"(" + KEY_ID
" INTEGER PRIMARY KEY," + KEY_NAME
" TEXT," + KEY_PASS

мож ещё где
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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