2014-10-11 1 views
-1

Я хочу добавить таблицу в базу данных и хочу добавить столбец и сохранить информацию и получить ее на другой нажатой кнопке, если таблица уже существует, она просто вставляет информацию, следующую за кодом, который используется но с ошибкой.Как добавить таблицу в SQliteDatabase

Button insert_info=(Button)findViewById(R.id.button1); 
insert_info.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     SQLiteDatabase db; 
     try 
     { 
      final EditText txt_field1=(EditText)findViewById(R.id.editText1); 
      String Per_Name=txt_field1.getText().toString(); 

      db=openOrCreateDatabase("sez.db",SQLiteDatabase.CREATE_IF_NECESSARY,null); 
      String Query_createTable="CREATE TABLE sezInformation(Name VARCHAR(100))"; 
      String Query_insert="insert into sezInformation(Name) values("+Per_Name+")"; 
      db.execSQL(Query_insert); 
     } 
     catch(Exception e) 
     { 
      Toast.makeText(WelomePerson.this, "ERROR"+e.toString(), Toast.LENGTH_LONG).show(); 
     } 
    } 
}); 

Всякий раз, когда я ввожу значение означает khan или любой другой в макет Edittext поля и нажмите на кнопку она показывает

No such column :khan while insert into sezInformation (Name) values(khan) 

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

+0

Что сообщение об ошибке? –

+0

всякий раз, когда я ввожу значение «хан» или любое другое в поле «Редактировать текст» и нажимаю кнопку, он не показывает такой столбец: хан, вставляя в значения sezInformation (Name) (khan) –

+0

, пожалуйста, скажите также, как получить тот же сохраненный данные в текстовом виде –

ответ

0

Использовать CREATE TABLE IF NOT EXISTS вместо CREATE TABLE.
Также обязательно используйте две отличные команды execSQL() (один для создания таблицы и один для вставки), или это не сработает, так как вы не можете выполнять сразу несколько команд.

0

В SQL строковые литералы должны быть в 'single quotes'. В противном случае они берутся как идентификаторы, такие как имена столбцов.

Еще лучше, используйте параметры:

db.execSQL("insert into sezInformation(Name) values(?)", 
    new Object[] { Per_Name }); 
Смежные вопросы