【问题标题】:Why the values are not being inserted in the database?为什么这些值没有被插入到数据库中?
【发布时间】:2016-04-25 18:24:21
【问题描述】:

我的数据库代码如下所示。

        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 savedInstanceState) { 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); save = (Button) 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();
            }}
            });

显示成功保存消息,但在数据库中未找到该值。请告诉为什么会这样?

【问题讨论】:

    标签: android database android-sqlite


    【解决方案1】:

    试一下:

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

    之前:

            Intent intent;
            intent = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(intent);
    

    【讨论】:

    • 我做到了,但没有显示投票。我想是因为我的名声不好。
    【解决方案2】:
     Intent intent;
            intent = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(intent);
            dbtools.close();
            insertData.this.finish();
    

    这行得通..

    【讨论】:

      【解决方案3】:

      但更好用

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

      即关闭您的数据库并启动活动

      【讨论】:

      • 您的两个答案都令人满意,但我建议您将所有可能性都包含在一个答案中,以便用户在一个答案中找到各种答案。这肯定会产生很大的不同。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-21
      • 1970-01-01
      • 2013-06-22
      相关资源
      最近更新 更多