android - 在 Android 数据库中出现此错误:android.database.sqlite.SQLiteException:靠近“+”:语法错误(代码 1)
问题描述
您好,我收到此错误:android.database.sqlite.SQLiteException: 接近“+”语法错误(代码 1),编译时:SELECT * FROM tbl_Individual_Donor_Registration WHERE BloodGroup = B+
这是我的表格元素代码:
public static final int DATABASE_VERSION = 3;
public static final String DATABASE_NAME = "BLOOD_PROJECT";
public static final String TABLE_NAME = "tbl_Individual_Donor_Registration";
public static final String TABLE_NAME_BLOOD_BANK = "tbl_Blood_Bank_Registration";
public static final String COL_1 = "Id";
public static final String COL_2 = "Name";
public static final String COL_3 = "Password";
public static final String COL_4 = "BloodGroup";
public static final String COL_5 = "BloodQuantity";
public static final String COL_6 = "MobileNo";
这是我的实际选择查询的代码:
String select = "SELECT * FROM " + TABLE_NAME + " WHERE " + COL_4 + " = "+ final_blood_group;
而 final_blood_group 是来自 Spinner 值,它来自用户的选择,我希望你能帮助我,谢谢。
解决方案
您需要在代码中更改一些小东西。这里的示例
正确的代码应该是这样的
SELECT * FROM tbl_Individual_Donor_Registration WHERE BloodGroup = 'B+'//you need single quote in B+
所以你需要把单引号放在
final_blood_group="'B+'";
那么你的代码看起来像这样
SELECT * FROM tbl_Individual_Donor_Registration WHERE BloodGroup = 'B+'
如果你不放单,那么作为关键字工作。
推荐阅读
- r - r 中特定组的参考时间的子集时间
- aws-lambda - 如何配置我的无服务器 YML 以使用我的 API Gateway Authorizer?
- postgresql - 如何将 CloudFormation 中 RDS 实例的 PostgreSQL 日志导出到 CloudWatch?
- php - Codeigniter 模型未定义的数组索引
- sql-server - 具有水平过滤的事务复制
- json - 如何使用 JSON 数据生成 Helm 图表配置文件
- linux - execl off 两个字节
- c# - 我需要帮助理解通过二维 (2D) 数组循环
- kubernetes - Kubernetes中的OutOfcpu错误是什么意思?
- laravel - Laravel 5.4 和 5.8 之间使用 Model::create 的区别?