如何在Android中查询SQLite数据库?

时间:2010-06-02 02:57:12

标签: database android sqlite

我成功创建了数据库并插入了一行,但由于某种原因我无法查询。我的Droid每次都会崩溃。

          // Create a new row of values to insert.
          ContentValues newValues = new ContentValues();
          // Assign values for each row.
          newValues.put("value", "kunjan");
          // Insert the row into your table
          myDatabase.insert(DATABASE_TABLE, null, newValues);

          String[] result_columns = new String[] { "value" };

          // I GET AN EXCEPTION HERE
          Cursor allRows = myDatabase.query(true, DATABASE_TABLE, result_columns, null, null,
              null, null, null, null);

          if (allRows.moveToFirst()) {
            String value = allRows.getString(0);
            TextView foo = (TextView) findViewById(R.id.TextView01);
            foo.setText(value);
          }

          allRows.close();
          myDatabase.close();

我得到了这个例外

no such column: value: , while compiling: SELECT DISTINCT value FROM mainTable

2 个答案:

答案 0 :(得分:2)

我认为您正在创建只包含一列(值)的表,并且您正尝试从游标中读取第1列而不是第0列。如果仍然没有帮助,请添加try-catch块并捕获日志

String value = allRows.getString(0);

答案 1 :(得分:0)

原帖的一些问题

  • 创建已创建的表。我在“创建表”指令中写了“如果不存在”。
  • 未正确处理例外情况。我在表的创建,查询等方面遇到了很多例外情况。我通过try-catch使用所有这些操作。
  • 对列名使用硬编码值 - 这使得我更难以验证我是否在查询我创建的列。