2017-02-14 1 views
0

Я работаю над Android SQLite. Я создаю новую таблицу и пытаюсь вставить в нее значения. Но при попытке вставить значения он не дает столбца LastName.android sqlite no такая ошибка столбца

Пожалуйста, помогите мне. Пожалуйста, проверьте код ниже.

String query3 = "create table if not exists " + "SIGNUPINFO" + " ("         + "FirstName TEXT," + "LastName TEXT," + "EmailID TEXT," + "Password TEXT," 
+ "Phone TEXT," +"Security TEXT);"; 

db.execSQL(query3); 

String query5 = "INSERT INTO SIGNUPINFO" + " (FirstName,LastName,EmailID,Password,Phone,Security) " + "VALUES ('" 
+ firstName + "','" +lastName+ "','" + emailID + "','" +password+ "','" + phone+ "','" + "security" +"');"; 

db.execSQL(query5); 
+0

пожалуйста. Показывать ошибку журнала –

+0

обновили ли вы свою таблицу без обновления своей версии базы данных? попробуйте очистить данные приложения и снова запустить, возможно, ваша таблица не обновляется. –

+0

Если у вас есть root-доступ, попробуйте вытащить файл .db и посмотреть, была ли база данных успешно создана. Используйте любой инструмент DMBS и попытайтесь выполнить запрос. Просто запустил код, который вы вставили, и выглядит нормально. – Dibzmania

ответ

1

Пожалуйста, проверьте refernce ответ на ту же проблему. Возможно, это поможет вам.

Ну, если вы confindent о синтаксисе для создания таблицы, чем это может произойти при добавлении нового столбца в одной таблице, для этого ...

1) Unistall из устройства и запустить снова.

ИЛИ

2) Настройка -> приложения -.> ClearData

ИЛИ

3) Изменение DATABASE_NAME в классе "DatabaseHandler" (я столкнулся с той же проблемой, но Я исхожу из-за изменения DATABASE_NAME.)

OR

4) Изменение DATABASE_VERSION в классе "DatabaseHandler" (Если вы добавили новый столбец, чем он будет модернизировать autimatically)

public DatabaseHandler(Context context) { 
      super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     } 
+1

Спасибо! Это сработало – user3571631

+0

Итак, отметьте знак @ user3571631. – Kush

-2

поместить этот код в классе приложения и получить базу данных в externalstorage.

Затем вы можете проверить созданный столбец или нет в таблице базы данных.

public static void copyDataBase(Context mActivity) throws IOException { 
     Log.d("tag", "Copy Database called"); 
     InputStream myInput = new FileInputStream(new File("/data/data/" 
       + mActivity.getPackageName() + "/databases/" 
       + "yourdb.sqlite")); 
     File files = new File(Environment.getExternalStorageDirectory() 
       + "/files/"); 
     files.mkdirs(); 
     String outFileName = Environment.getExternalStorageDirectory() 
       + "/yourdb.sqlite"; 
     OutputStream myOutput = new FileOutputStream(outFileName); 
     byte[] buffer = new byte[1024]; 
     int bufferLength; 
     while ((bufferLength = myInput.read(buffer)) > 0) { 
      myOutput.write(buffer, 0, bufferLength); 
     } 
     myOutput.flush(); 
     myOutput.close(); 
     myInput.close(); 
     Log.d("tag", "Copy Database Done"); 
    } 

Я надеюсь, что он вам пригодится.