【问题标题】:rawQuery in androidandroid中的rawQuery
【发布时间】:2013-12-30 09:43:28
【问题描述】:

我的应用程序中有一个数据库。我想选择特定的行。 这是我的查询字符串:

SQLiteDatabase db = this.getReadableDatabase();

String C_PRODUCT_CATEGORY_ID = category_id;
String TABLE_PRODUCT = tblProduct;
String categoryID = 1;

String select = String.format("SELECT %s FROM %s WHERE %s=%s",
    C_PRODUCT_CATEGORY_ID, TABLE_PRODUCT, C_PRODUCT_CATEGORY_ID,
    categoryID);
Cursor c = db.rawQuery(select,new String[]{});

光标c为空!当我在带有 sqlite 编辑器的设备上使用 .db 文件并运行时会发生什么

SELECT category_id FROM tblProduct WHERE category_id=1 

它返回 2 行。 怎么了?请帮帮我!

【问题讨论】:

  • 该代码似乎不是您实际使用的代码,因为它存在语法错误。

标签: android sqlite


【解决方案1】:

使用数据库的查询方法,

Cursor c = db.query(TABLE_PRODUCT, null, C_PRODUCT_CATEGORY_ID+"=?", new String[]{categoryID}, null, null, null);

希望这对你有用!!

【讨论】:

    【解决方案2】:
    SQLiteDatabase db = this.getReadableDatabase();
    String categoryID = 1;
    String select = "SELECT category_id FROM tblProduct WHERE category_id="+categoryID;
    Cursor c = db.rawQuery(select,new String[]{});
    

    就用这个

    【讨论】:

      【解决方案3】:

      您可能需要将 ' 和 ' 放在 "="; 之后我的意思是:

      String select = String.format("SELECT %s FROM %s WHERE %s='%s'",
          C_PRODUCT_CATEGORY_ID, TABLE_PRODUCT, C_PRODUCT_CATEGORY_ID,
          categoryID);
       Cursor c = db.rawQuery(select,null);
      

      【讨论】:

        【解决方案4】:

        试试这个

        光标 c = dB。 rawQuery (select, null);

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-02
          • 2012-05-16
          相关资源
          最近更新 更多