Android SQLite rawquery参数

时间:2012-02-18 12:38:07

标签: android sqlite

如何在sqlite for android中将整数传递给rawquery。 这里没有把g和s带入查询。请指导。

    int g, s;

    Cursor cur3 = database2.rawQuery("select max(UnixTimeStamp) from Quote where EmoticonID=%d and SubCategoryID=%d" ,new String [] {g,s});

3 个答案:

答案 0 :(得分:37)

所有参数位置都应指定为?。查询的参数总是字符串,所以整数没有什么特别之处。这应该适合你:

Cursor cur3 = database2.rawQuery("select max(UnixTimeStamp) from Quote where EmoticonID=? and SubCategoryID=?" ,new String [] {String.valueOf(g),String.valueOf(s)});

答案 1 :(得分:-3)

查询中的参数需要是字符串,因此请将这些参数转换为字符串并按如下方式编写查询。

使用String.valueOf();

Cursor c = db.rawQuery(SELECT max(UnixTimeStamp) 
                       FROM Quote 
                       WHERE EmoticonID ='"+d+"' AND SubCategoryID ='"+ s +"'");

由于

答案 2 :(得分:-6)

Cursor cur3 = database2.rawQuery("select max(UnixTimeStamp) from Quote where EmoticonID="
                                 + g + " and SubCategoryID = " + s + " ");