2016-03-23 5 views
0

Я не могу сохранить строковый конструктор в файл базы данных. Я не могу понять, как работает ContentValues.putAll, поскольку я думаю, что именно так мне нужно решить мою проблему. Это код, относящийся к проблеме.Сохранение StringBuilder в SQLiteDatabase

Я думаю, что мне нужно сделать, это иметь переменную в моей основной деятельности, которая хранит как «etNameString» и «strReturnedAddress», а затем в «DatabaseOperations.updateDatabase()» .. Мне нужно иметь следующее заявление:

args.putAll (значения)

Но я не знаю, как иметь оба значения, сохраненные в одной переменной. Извините мою наивность, я довольно новичок в этом. Заранее спасибо.

Вставить метод строки:

**DatabaseOperations class** 

public void updateDatabase(String Name, StringBuilder Address) { 
    SQLiteDatabase myDB = this.getWritableDatabase(); 
    ContentValues args = new ContentValues(); 
    args.put(COL_1, Name); 
    args.put(COL_2, Address); 
    myDB.insert(TABLE_NAME, null, args); 
    Log.d("Database Operations", "Entry Successful"); 
} 

Позвони updateDatabase с аргументами: (strReturnedAddress определен в непоказанной коде)

**MainActivity class** 

//Updates Database with Name // Shows Toast // Sets Text Field to Blank 
        EditText etName = (EditText) findViewById(R.id.etName); 
        String etNameString = etName.getText().toString(); 
        db.updateDatabase(etNameString, strReturnedAddress); 
        Toast toast = Toast.makeText(MainActivity.this, "Entry Saved", Toast.LENGTH_SHORT); 
        toast.show(); 
        etName.setText(" "); 

Настройка моей базы данных:

**DatabaseOperations class** 

public static final String DATABASE_NAME = "HDL_DB"; 
public static final String TABLE_NAME = "HDL_Table"; 
public static final String COL_1 = "Name"; 
public static final String COL_2 = "Address"; 


public String CREATE = "CREATE TABLE " + TABLE_NAME + " (" + 
       COL_1 + " TEXT" + COL_2 + " TEXT)"; 
+0

попробовать этот 'args.put (COL_2, Address.toString());', проверьте LogCat, если любые ошибки есть – Yazan

+0

Спасибо большое, что действительно помогло! –

ответ

0

Две проблемы , Один, что пользователь Язан упомянул в своем комментарии, вы должны получить строку из вашего StringBuilder с args.put(COL_2, Address.toString());

Вторая проблема связана с вашей строки CREATE в классе DatabaseOperations. У вас нет ничего, разделяющую два ваших имен столбцов (обратите внимание на запятую и пробел после первой TEXT):

public String CREATE = "CREATE TABLE " + TABLE_NAME + " (" + 
      COL_1 + " TEXT, " + COL_2 + " TEXT)"; 
+0

Большое спасибо! Я очень ценю вашу помощь в моей проблеме :) –

Смежные вопросы