rawQuery 参数问题求解
 cursor = db.rawQuery("select * from 库存 where 产品号=1 and 仓库号='ck01'",null);
cursor.moveToFirst();
lw1 = cursor.getColumnIndex("库存量");
do{
    lw2 = cursor.getInt(lw1); (int的lw2)
    Toast.makeText(RuKu.this,""+lw2,Toast.LENGTH_SHORT).show();
}while (cursor.moveToNext());
cursor.close();

上面的代码运行到 lw2 = cursor.getInt(lw1) 卡住,并且程序闪退

第一行RawQuery换成这个:cursor = db.rawQuery("select * from 库存 where 产品号=1 ",null);
(把 仓库号=’ck01’ 去掉) 便可正常运行

求解!!

库存表:

仓库号 char(10)
产品号 int
库存量 int

仓库号 产品号 库存量
ck01 1 100
ck01 2 0
ck02 1 0
ck02 2 100
ck01 3 100
ck02 3 100

我想只读取到一个int库存量

1个回答

sql语句中有单引号时,用?占位符的写法 ,代码如下:

String q = "select * from 库存 where 产品号=1 and 仓库号=?";

db.rawQuery(q, new String[] {"ck01"});

用心回答每个问题,如果有帮助,请采纳答案好吗,谢谢~~~

qq_36881363
痞子小小崔 我知道了 是用SqlConverter将sql转化成db内部储存时 转换没有把char[]转化好 把多余的空格带进来了;现在没事了
2 年多之前 回复
fight_in_dl
战在春秋 检查数据库,ck01前后有没有空格
2 年多之前 回复
qq_36881363
痞子小小崔 db.update("库存",cvalues2,"仓库号 = ?",new String[]{"ck01"}); 或其他语句 什么query啊 insert啊什么什么的 只要? 涉及字串的都表示无结果,只有是数字参数语句才有用 例: db.update("库存",cvalues2,"产品号 = ?",new String[]{1+""});
2 年多之前 回复
qq_36881363
痞子小小崔 db.update("库存",cvalues2,"仓库号 = ?",new String[]{"ck01"}); 或其他语句 什么query啊 insert啊什么什么的
2 年多之前 回复
qq_36881363
痞子小小崔 sql2012 是有记录的
2 年多之前 回复
fight_in_dl
战在春秋 用数据库工具,把你用到的sql语句执行一下,看有没有记录
2 年多之前 回复
fight_in_dl
战在春秋 回复战在春秋: 你用的什么数据库,借助工具,检查一下sql语句的执行情况 ,看看有没有符合条件的记录。
2 年多之前 回复
fight_in_dl
战在春秋 返回false说明查询执行成功,但是没有符合条件的记录。
2 年多之前 回复
qq_36881363
痞子小小崔 刚刚看了 cursor.moveToFirst(); 为false。。。。
2 年多之前 回复
qq_36881363
痞子小小崔 回复战在春秋: 2
2 年多之前 回复
fight_in_dl
战在春秋 回复痞子小小崔: 看一下lw1返回值是多少
2 年多之前 回复
qq_36881363
痞子小小崔 我该怎么输出仓库号为ck01,产品号为1的那条数据100?
2 年多之前 回复
qq_36881363
痞子小小崔 String q = "select * from 库存 where 产品号 =1 and 仓库号 = ?"; cursor = db.rawQuery(q,new String[]{"ck01"}); cursor.moveToFirst(); lw1 = cursor.getColumnIndex("库存量"); do{ w2 = cursor.getInt(lw1); Toast.makeText(RuKu.this,""+lw2,Toast.LENGTH_SHORT).show(); }while (cursor.moveToNext()); cursor.close(); 不行啊 还是一样 我加了log 还是w2 = cursor.getInt(lw1);卡住了
2 年多之前 回复
qq_36881363
痞子小小崔 String q = "select * from 库存 where 产品号 =1 and 仓库号 = ?"; cursor = db.rawQuery(q,new String[]{"ck01"}); cursor.moveToFirst(); lw1 = cursor.getColumnIndex("库存量"); do{ w2 = cursor.getInt(lw1); Toast.makeText(RuKu.this,""+lw2,Toast.LENGTH_SHORT).show(); }while (cursor.moveToNext()); cursor.close(); 不行啊 还是一样 我加了log 还是w2 = cursor.getInt(lw1);卡住了
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!