首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android SQLite SELECT查询

Android SQLite SELECT查询
EN

Stack Overflow用户
提问于 2012-02-15 00:42:40
回答 6查看 155.1K关注 0票数 24

我从EditText中获取了String值,并将其设置在SELECT QUERY after WHERE条件中

作为

代码语言:javascript
复制
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")));

但它不起作用。有什么建议吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-02-15 00:49:53

尝试修剪字符串以确保没有额外的空格:

代码语言:javascript
复制
Cursor c = db.rawQuery("SELECT * FROM tbl1 WHERE TRIM(name) = '"+name.trim()+"'", null);

也可以使用c.moveToFirst(),比如前面提到的@thinksteep。

票数 40
EN

Stack Overflow用户

发布于 2014-04-12 05:10:46

这是select语句的完整代码。

代码语言:javascript
复制
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();
票数 33
EN

Stack Overflow用户

发布于 2013-05-05 22:21:36

尝试使用以下语句:

Cursor c = db.rawQuery("SELECT * FROM tbl1 WHERE name = ?", new String[] {name});

Android要求WHERE子句与a ?进行比较,然后指定相同数量的?在查询的第二个参数中(当前有null)。

正如Nambari提到的,您应该使用c.moveToFirst()而不是c.moveToNext()

还有,名字里有没有引用?这也可能会把事情搞砸。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9280692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档