使用SQLite保存和返回数据时出错

时间:2013-08-15 02:09:22

标签: android sqlite

我试图从3个编辑文本中收集数据并将其保存以用于其他活动。 代码如下(我已经编辑了代码,只显示一个edittext for convinence)

            EditText holdersala = (EditText) findViewById(R.id.rawsalary);

            String holdersalary = holdersala.getText().toString();
            final int salary = Integer.parseInt(holdersalary);

     SQLiteDatabase datab = openOrCreateDatabase("yourdata", MODE_PRIVATE, null);
      datab.execSQL("CREATE TABLE IF NOT EXISTS MainData (Salafig INT);");
      datab.execSQL("INSERT INTO MainData VALUES (@salary);");
          datab.close();

然后我在另一个活动中检索此信息并将其保存到textview

    TextView bn = (TextView) findViewById(R.id.budget_need);


    SQLiteDatabase datab = openOrCreateDatabase("yourdata", MODE_PRIVATE, null);
    Cursor c = datab.rawQuery("SELECT * FROM MainData", null);
    c.moveToFirst();
    bn.setText(c.getString(c.getColumnIndex("Salafig")));
    datab.close(); 

由于某些原因,当我运行应用程序时,textview为空白。请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:0)

这里有一些建议。 SQLite与常规SQL =)

略有不同

您的第一个datab.execSQL("CREATE TABLE IF NOT EXISTS MainData (Salafig INT);");应如下所示:

  datab.execSQL("CREATE TABLE MainData (Salafig INTEGER);");

如果表已经存在,SQLite将不会覆盖您的表,并且使用整数代替int。

您的第二个查询datab.execSQL("INSERT INTO MainData VALUES (@salary);");应替换为:

    ContentValues values = new ContentValues();
    values.put("Salafig", salary);
    datab.insert("MainData", null, values);

最后,您的bn.setText(c.getString(c.getColumnIndex("Salafig")));应替换为:

bn.setText(c.getInt("Salafig") + "");