大家好我在数据库处理程序类中有这个方法,这个类的作用是从product表返回产品的ID。但是,我收到这个sqliteexception,我不知道为什么。 请指教,谢谢。
private static final String TABLE_PRODUCT = "product"
private static final String KEY_PRODUCTNAME = "productname";
public String getProductId(String productName) {
String selectQuery = "SELECT productid FROM " + TABLE_PRODUCT+ " WHERE " +KEY_PRODUCTNAME +" = " + productName;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
String productid = cursor.toString();
cursor.close();
db.close();
return productid;
}
错误:
E/AndroidRuntime(1884): FATAL EXCEPTION: main
E/AndroidRuntime(1884): android.database.sqlite.SQLiteException: unrecognized token: "Bluedress34.50" (code 1): , while compiling: SELECT productid FROM product WHERE productname = "Bluedress34.50"
我的活动课程:
add.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
String productname = pname.getText().toString();
String productQTY = pqty.getText().toString();
String productnameid = db.getUProductId(productname);
JSONObject json = userFunction.addSales(productnameid, productQty);
}
}
我的用户功能类:
public JSONObject addSales(productnameid, productQty){
// Building Parameters
List<NameValuePair> paramsfile = new ArrayList();
paramsfile.add(new BasicNameValuePair("productnameid", productnameid));
paramsfile.add(new BasicNameValuePair("productQty", productQty));
JSONObject jsonfileName = jsonParser.getJSONFromUrl(addFileURL, paramsfile);
Log.e("JSON", jsonfileName.toString());
return jsonfileName;
}
答案 0 :(得分:5)
由于产品名称采用字符串格式,因此请在查询中使用'
,如下所示
String selectQuery = "SELECT productid FROM " + TABLE_PRODUCT
+ " WHERE " + KEY_PRODUCTNAME +" ='" + productName +"'";
答案 1 :(得分:4)
我宁愿写下来:
String selectQuery =
"SELECT productid FROM " + TABLE_PRODUCT+ " WHERE " + KEY_PRODUCTNAME + " = ?";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, new String[]{productName});
答案 2 :(得分:1)
数据库事务中的任何字符串值都应仅在'
单引号中访问。
只需在单引号'
中写下您的商品价值,如下所示:
“='”+ productName +“'”;
查询:
"SELECT productid FROM " + TABLE_PRODUCT+ " WHERE " +KEY_PRODUCTNAME +" = '" + productName +"'";
答案 3 :(得分:1)
String selectQuery = "SELECT productid FROM " + TABLE_PRODUCT+ " WHERE " +KEY_PRODUCTNAME +" = '" + productName +"'";