Почему значения не вставляются в базу данных?

avatar
Niroj
20 января 2016 в 03:25
172
3
3

Код моей базы данных выглядит так.

        public void addprofileinfo(HashMap<String, String> queryValues){

        SQLiteDatabase database = this.getWritableDatabase();

        ContentValues values = new ContentValues();

        values.put("StudentName", queryValues.get("StudentName"));
        values.put("RegistrationNo", queryValues.get("RegistrationNo"));
        values.put("Faculty", queryValues.get("Faculty"));
        values.put("TotalFeePaid", queryValues.get("TotalFeePaid"));

        database.insert("FEE", null, values);

        database.close();

Код действия: protected void onCreate (Bundle saveInstanceState) { super.onCreate(savedInstanceState); setContentView (R.layout.insertfield); editName = (EditText) findViewById (R.id.editTextName); editFaculty = (EditText) findViewById (R.id.editTextfaculty); editFee=(EditText)findViewById(R.id.editTexttotalfeepaid); editRegid=(EditText)findViewById(R.id.editTextid); сохранить = (Кнопка) findViewById(R.id.buttonsave);

addData();
}

public void addData(){
    save.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            try{

                HashMap<String, String> queryValuesMap = new HashMap<String, String>();

            queryValuesMap.put("StudentName",editName.getText().toString());
            queryValuesMap.put("Faculty", editFaculty.getText().toString());
            queryValuesMap.put("TotalFee",      editFee.getText().toString());
            queryValuesMap.put("RegistrationNo",        editRegid.getText().toString());

            dbtools.addprofileinfo(queryValuesMap);
            Toast.makeText(insertData.this, "Successful!!!", Toast.LENGTH_LONG).show();

            Intent intent;
            intent = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(intent);
            dbtools.close();
            insertData.this.finish();



            }catch(Exception e){
                Toast.makeText(insertData.this, e.getMessage(), Toast.LENGTH_LONG).show();
            }}
            });

Отображается сообщение об успешном сохранении, но значение не найдено в базе данных. Скажите, пожалуйста, почему это происходит?

Источник

Ответы (3)

avatar
Rohit Sharma
20 января 2016 в 03:37
2

Попробуйте ввести:

        dbtools.close();
        insertData.this.finish(); 

До:

        Intent intent;
        intent = new Intent(getApplicationContext(), MainActivity.class);
        startActivity(intent);
Niroj
20 января 2016 в 17:02
1

Я сделал это, но голосование не отображается. Я думаю, из-за моей низкой репутации.

avatar
Niroj
26 февраля 2016 в 05:10
0

но лучше использовать

    dbtools.close();
    insertData.this.finish(); 
    Intent intent;
    intent = new Intent(getApplicationContext(), MainActivity.class);
    startActivity(intent);

т.е. закройте базу данных и начните деятельность

sigdelsanjog
26 февраля 2016 в 05:19
0

Оба ваших ответа удовлетворительны, но я предлагаю вам включить все возможности в один ответ, чтобы пользователи могли найти всевозможные ответы в одном. Это, безусловно, будет иметь большое значение.

avatar
Niroj
26 февраля 2016 в 05:03
0
 Intent intent;
        intent = new Intent(getApplicationContext(), MainActivity.class);
        startActivity(intent);
        dbtools.close();
        insertData.this.finish();

Это работает..