У вас нет пробела между именами столбцов и типом. Например, A_NAME + "TEXT..."
. Оно должно быть A_NAME + " TEXT..."
(см. Пробел перед ТЕКСТОМ).
Также между CREATE и именем таблицы "CREATE TABLE" +DATABASE_Bussiness
. Обратите внимание, что пробел перед +
не находится внутри строкового литерала. Пробелы вне строковых литералов не имеют значения. "a"+"b"
совпадает с "a" + "b"
. Оба результата в "ab"
. Но "a " + "b"
дает "a b"
.
Вы также можете использовать интерполяцию строки ($) и дословную строку (@). Это более читабельно
String CREATE = $@"CREATE TABLE {DATABASE_Bussiness} (
{KEY_ID} INTEGER primary key AUTOINCREMENT,
{A_DATE} TEXT,
{A_NAME} TEXT,
{A_AMOUNT} INTEGER);";
db.execSQL(CREATE);
Кроме того, переменные должны содержать имена столбцов, а не значения столбцов. Значения вставляются в таблицу после ее создания с помощью команды INSERT INTO . Результат должен выглядеть примерно так:
CREATE TABLE Deposit (
DepositId INTEGER primary key AUTOINCREMENT,
Valuta TEXT,
Descrition TEXT,
Amount INTEGER);
Имена таблиц и столбцов не должны быть ключевыми словами, принадлежащими языку SQLite.