Hir*_*age 21 java sqlite android
我String从a中获取了值EditText并将其设置为SELECT QUERY after WHERE条件
如
TextView tv = (TextView) findViewById(R.id.textView3);
EditTextet2 et = (EditText) findViewById(R.id.editText1);
String name = et.getText().toString();
Cursor c = db.rawQuery("SELECT * FROM tbl1 WHERE name = '"+name+"'", null);
c.moveToNext();
tv.setText(c.getString(c.getColumnIndex("email")));
Run Code Online (Sandbox Code Playgroud)
但它不起作用.有什么建议?
zzz*_*zzz 39
尝试修剪字符串以确保没有额外的空白区域:
Cursor c = db.rawQuery("SELECT * FROM tbl1 WHERE TRIM(name) = '"+name.trim()+"'", null);
Run Code Online (Sandbox Code Playgroud)
也可以c.moveToFirst()像@thinksteep一样使用.
小智 27
这是select语句的完整代码.
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery("SELECT column1,column2,column3 FROM table ", null);
if (c.moveToFirst()){
do {
// Passing values
String column1 = c.getString(0);
String column2 = c.getString(1);
String column3 = c.getString(2);
// Do something Here with values
} while(c.moveToNext());
}
c.close();
db.close();
Run Code Online (Sandbox Code Playgroud)
小智 13
尝试使用以下语句:
Cursor c = db.rawQuery("SELECT * FROM tbl1 WHERE name = ?", new String[] {name});
Android要求WHERE子句与?进行比较,然后指定相同数量的?在查询的第二个参数中(当前您具有null).
正如Nambari所提到的,你应该使用c.moveToFirst()而不是c.moveToNext()
还有,名字会有引用吗?这也可能搞砸了.
| 归档时间: |
|
| 查看次数: |
127497 次 |
| 最近记录: |