android - 单击保存按钮后,键/对值检索卡在“正在运行的活动”上
问题描述
我在 SQL 数据库中有一个课程表和课程描述表。例如
课程代码 -------- 课程名称
Engineering101 ....物理学基础
Math101 ....................微积分基础
........... ETC
我想检索课程名称的值,让我们在将课程代码Engineering101 输入到编辑文本字段后说“物理基础”描述。
我的文件在这里中断:
public void saveData(View view) {
EditText courseCodeName, courseCodeNumber;
courseCodeName = findViewById(R.id.course_code);
courseCodeNumber=findViewById(R.id.course_number);
//get course name based off of coursenumber. make sure course name field blank
if(courseCodeName.toString()=="" |courseCodeNumber.toString()!=""){
// get codename and course name columns
Cursor c = db.rawQuery("SELECT _id, course_name1, course_code1 FROM contacts WHERE course_code1 like '"+courseCodeNumber+"'",
null);
if(c!=null){
if(c.moveToFirst()){
do{
final String[] courseName=c.getColumnNames();// <---BREAKS HERE
String m = courseName[0];
//String course_name=c.getString(c.getColumnNames(dBContract.MenuEntry.COLUMN_CODE));
Log.v("Set Correctly?", m);
}while(c.moveToNext());
}
}
是什么导致这种情况发生?它只是说“活动正在运行”,就是这样。
谢谢。
解决方案
通过阅读上面的评论if (...)
//get course name based off of coursenumber. make sure course name field blank
我认为应该是:
if(courseCodeName.getText().toString().trim().isEmpty() && !courseCodeNumber.getText().toString().trim().isEmpty())
然后通过使用占位符使用安全的方式查询表以避免sql注入:
Cursor c = db.rawQuery("SELECT course_name1 FROM contacts WHERE course_code1 = ?", new String[] {courseCodeNumber});
我将语句更改为 return 只是course_name1
因为您对任何其他列不感兴趣并且也更改like
为=
.
然后,我不知道你是否真的需要一个循环。您是否期望返回超过 1 行?
我不这么认为,因为我认为course_code1
它是独一无二的(或不是?)。
所以这样做:
if(c.moveToFirst()){
String course_name = c.getString(0);
..................................
}
推荐阅读
- python - 使用 pycharm 文件从 github 克隆
- flutter - 颤振消息未发送
- python - 从文本文件中添加行并使用 for 循环打印出结果 - Python
- applescript - 将变量设置为字符串错误的一部分
- php - gRPC PHP 插件安装
- java - 如何在 application.yaml 中禁用 whitelabel 错误页面(spring boot)
- javascript - 带有 msal 1.x loginRedirect 的 Outlook Web 插件 - 不再适用于最新的 iOS
- react-native - 在联系权限上单击“允许”后显示“键盘”
- python - 根据 Pandas 中的时间戳条件选择数据框的子集
- python - 在查询除手动添加的列之外的所有列时,避免在 sqlalchemy 中出现此类列错误