首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用android搜索函数SQLite数据库

用android搜索函数SQLite数据库
EN

Stack Overflow用户
提问于 2014-01-14 12:35:22
回答 2查看 853关注 0票数 0

我试图创建一个包含字符串的搜索函数,搜索本地db,然后输出字符串中的内容。在此之后,我将显示btn上的字符串。

这是我的搜索功能。

代码语言:javascript
运行
复制
public String Search(String n)
    {
        String info = "";
        Cursor cu = HRdb.rawQuery("SELECT * FROM HRinfotbl WHERE (lname LIKE '"+n+"' OR fname LIKE '"+n+"';",null);
        int count = cu.getCount();
        cu.moveToFirst();
        for (Integer j = 0; j < count; j++)
        {
            info = info + 
                       "Surname : "+cu.getString(cu.getColumnIndex("lname"))+"\n"+
                       "Name : "+cu.getString(cu.getColumnIndex("fname"))+"\n"+
                       "Email : "+cu.getString(cu.getColumnIndex("email"))+"\n"+
                       "Contact : "+cu.getString(cu.getColumnIndex("contact"))+"\n\n";
            cu.moveToNext() ;
        }
        HRdb.close();
        return info;
    }

这里还有其他可能影响它的代码。

代码语言:javascript
运行
复制
Button search = (Button) findViewById(R.id.searchbtn);
        search.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) 
        {
            dbView.setText(Search(searchtxt.getText().toString()));

        }
        });

希望有人能帮忙,谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-14 13:15:57

首先,有一个SQL语法错误:最后缺少)。你可以移除孩子的父母。

其次,对于LIKE,您可能希望使用%来匹配任意数量的字符。

第三,使用?占位符和绑定参数,而不是硬编码任何用户输入。

示例:

代码语言:javascript
运行
复制
Cursor cu = HRdb.rawQuery("SELECT * FROM HRinfotbl WHERE " +
    "lname LIKE '%' || ? || '%'  OR fname LIKE '%' || ? || '%'",
    new String[] { n, n });

其中,||是字符串连接运算符。我还删除了结束时的;,因为它不是必要的。

票数 0
EN

Stack Overflow用户

发布于 2014-01-14 12:57:03

我认为这不安全,我建议像这样搜索

代码语言:javascript
运行
复制
Cursor cu = HRdb.rawQuery("SELECT * FROM HRinfotbl WHERE (lname LIKE ? OR fname LIKE ?;", new String[]{n, n});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21113716

复制
相关文章

相似问题

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