用where条件查询SQLite数据库

在数据库中用string作为where条件查询数据库,程序就会关闭。如果换成数字作为条件,就没问题。帮我看一下代码:

public ArrayList<Contact> getAvailableList() 
{
    // TODO Auto-generated method stub
    ArrayList<Contact> results = new ArrayList<Contact>();
    String[] columns = new String[]{KEY_NAME, KEY_NUMBER, KEY_STATUS};
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_STATUS +"=available" , null, null, null, KEY_NAME);
    String sName = "";
    String sNum = "";
    String status = "";
    int iName = c.getColumnIndex(KEY_NAME);
    int iNumber = c.getColumnIndex(KEY_NUMBER);
    int iStatus = c.getColumnIndex(KEY_STATUS);
    Contact contact;
    for(c.moveToFirst(); ! c.isAfterLast(); c.moveToNext())
    {
        contact = new Contact();
        sName += c.getString(iName);
        sNum += c.getString(iNumber);
        status += c.getString(iStatus);
        contact.setName(sName);
        //contact.setPhoneNumber(sNum);
        contact.setPhoneNumber("0".concat(sNum));
        contact.setStatus(status);
        results.add(contact);
        sName = "";
        sNum = "";
        status = "";
    }
    return results;
}

3个回答

在SQL中要把字符安用括号括起来的。像这样:

//                                                         添加这个 v         v
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_STATUS +"='available'", 
        null, null, null, KEY_NAME);

如果你用动态数据,可以用selectionArgs参数:

String status = "available";
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_STATUS +"=?", 
        new String[] {status}, null, null, KEY_NAME);

这个方法可以保护你不受SQL注入的影响。

Momo1199
Momo1199 谢谢
接近 7 年之前 回复

楼主写错了,你可能没弄明白这个方法中的参数含义;

你可以这样写试试:

String[] columns = { KEY_NAME, KEY_NUMBER, KEY_STATUS };
String selection = KEY_STATUS + "=?";
String[] selectionArgs = { "available" };
String orderBy = KEY_NAME + " DESC"; // OR ASC
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, selection, selectionArgs, null, null, orderBy);

这样才能查到数据;
解释一下,query方法在执行中,会被Android自动解析为一条标准的SQL,即:

SELECT
KEY_NAME, KEY_NUMBER, KEY_STATUS
FROM
DATABASE_TABLE
WHERE KEY_STATUS = 'available'
ORDER BY KEY_NAME DESC;
Momo1199
Momo1199 谢谢,学习了
接近 7 年之前 回复

把(出错时)执行前的sql语句打印出来,可能出错了
我也没看到where啊,关闭会提示出错log的,怎么说的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
数据库学习 - where(条件查询)
Where后跟查询条件来进行条件查询,其逻辑运算符用and,or,not表示,同时需要注意运算符的优先次序及括弧的使用。 示例: 1 查询教师表中所有工资低于6000或者工资大于8000的03系老师信息 SELECT * FROM teacher WHERE ( teacher_salary < 6000 OR teacher_salary > 8000 ) AND dept
where条件查询
想要成为一个大前端工程师,了解数据库是十分重要的,掌握一些基本的数据库使用技巧,了解系统中数据的存储结构,从而能够站在后端工程师的角度上去和后端工程师交流与协同工作.本篇就通过流行的开源数据库MySQL带你了解数据库的世界。想要学习更多前端课程,请关注攻城课堂 http://www.gongchengketang.com/
WHERE条件查询
准备好一组数据,开始学习WHERE条件查询。
mysql单表查询Where 条件查询
mysql单表查询Where 条件查询
mongodb之where条件查询
mongodb支持sql的where查询格式 例子: db.getCollection('test_user').find({'$where':&quot;function(){ return this.addresss.length&amp;gt;2}&quot;}); 上述等价:db.getCollection('test_user').find({'$where':&quot;this.addresss.length&amp;gt...
子查询-where条件查询
Mysql数据库基础入门视频课程:属于零基础Mysql数据库教程,从数据库的基本专业术语介绍到数据库软件的下载使用rn一步一步带你安装MySql。SQL阶段你将学会如果使用数据定义语言DDL,数据操作语言DML,数据查询语言DQLrn在学会各中查询语句之后,会带你学习数据的完整性, 掌握如果正确的向数据库中添加数据rn以上掌握技能之后,将会带你学习如何进行多表操作,关系的建立,各种连接查询等.rn常用函数,事务的学习,您将学到什么是事务的提交,回滚,并发操作及脏读,幻读.rn最后视图,存储过程,索引的学习,将会带你掌握更高级的数据库技术.
where条件查询详解
本课程全面介绍了sqlserver2008系统的体系架构和功能。本课程以章节的形式,共13章,逐步学习,内容包括sqlserver2008基础知识、t-sql语言、数据库和表、select查询、视图、索引和游标、存储过程与触发器、数据库的备份与还原、安全与权限等。
entity添加where条件查询
dbQuery = dbQuery.Include("ReturnReportKeys.ReturnReport");rn像这样的include生成的语句是inner join 两张表,那么如何让这个生成的inner join在查询的时候多一个条件查询呢?rn表结构如下:rn A表rn -------rn arn rnB表rn --------rn a crn rnC表rn --------rn c drn 主要是在entity里面有这样的关系:rn 假设A,B,C表对应的entity为A,B,Crn 1.A中有:Icollection bget;set;rn 2.B中有:C cget;set;
sql 条件查询(where, having)
题目描述:house表,字段如下: id 主键 room_id 房间id owner_id 房东id room_type 整租为1,合租为0 求整租超过10个房子的房东id sql: select owner_id, count(room_id) num from house where room_type=1 group by owner_id...
MySQL之where条件查询
一、where条件 单表查询是MySQL查询中的一种常见的查询方式,而where语句块则在单表查询语句中起到指定查询过滤条件的功能。 语法为: select *|字段列表|表达式 from table_name [where 条件] [order by 字段列表] 说明: **:相当于按照表中字段顺序罗列表中的所有字段 字段列表:当查询结果只是表中部分字段时,可将要显示的字段罗列出来,字段之间以逗...
关于where的条件查询in
表达式查询 上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,查询表达式的使用格式: $map['字段1'] = array('表达式','查询条件1');$map['字段2'] = array('表达式','查询条件2');$Model->where($map)->select(); // 也支持 表达式不分大小写,支持的查询表达式有下面几种,分别表示
学习笔记 - 数据库 - join 条件和 where 条件查询
join on 查询条件和 where 查询条件 on 是生成符合条件的表,where 是对已生成的表进行条件过滤 例如,有如下两表: user: +----+-------+---------+ | id | name | addr | +----+-------+---------+ | 1 | tom | street1 | | 2 | DIVA | st...
where条件查询的and 怎么拼接
我想在页面上显示几个数据 用户可以点多选框加入比较 最后根据判断 在查询语句里 where条件 and拼接rn每选中一个就加一个andrnselect * from xxx where id =1 and id=2 and.............rn这个怎么拼接 rnTHINKPHP的
MySQL查询之where条件查询
本教程从基础的MySQL开始介绍,到SQLServer,然后Oracle,让学员能够从易到难,从Java或PHP语言到.Net数据库的灵活使用。其中分库介绍了,各个数据库的基本独立使用,以及各自的安装和配置。课程中主要是以SQL脚本为基础同时介绍非常实用性的脚本使用。例如:层次化查询,正则表达式以及技巧性函数等等。
sqlite数据库—select—order、where、like用法
1. 利用抓取到的数据SpiderResult.db3建立数据库 点击连接(connection),选中“现有数据库文件”,并找到数据库文件(若没有数据库的用户名密码可以忽略) 点击确定,即可在在sqlite中看到文件的全部信息2. 利用sql语句查询并筛选需要的数据   a) 使用说明:点击query表示查询,点击新建开始输入命令,点击运行开始运行b) select * from 表名 (查询全...
linq where 中文 条件查询不到
List _listDataEC2 = (from ec2 in _callECShop.ecs_user_address.Where(p => p.consignee ==“中国”)rn select ec2).ToList(); rn1、字符串“中国”的条件 就是查询不到,要是用id查询可以查到,有中国的记录。而查询到的记录 中文 显示正常。rn2、如果consignee 是英文情况,把条件改成 p.consignee ==“china”,就能查到记录。rnrn对中文的查询条件 就是查不到记录。请大虾们指点????
mysql查询子句之一where条件查询
<p>n  <img src="https://img-bss.csdn.net/201905080310312323.jpg" alt="" /></p>n<p>n <br /></p>n<p>n <span style="color:#E53333;">详细的课堂笔记,直观好看便捷</span> n</p>n<img src="https://img-bss.csdn.net/201905080233429020.png" alt="" /><p>n <br /></p>n<p>n <span style="background-color:#FFFFFF;color:#E53333;">数据类型的详细剖析</span> n</p>n<p>n <img src="https://img-bss.csdn.net/201905080234462629.png" alt="" /></p>n<p>n <br /></p>n<p>n <span style="color:#E53333;">自动化生成百万甚至千万企业级别的测试表</span><span style="color:#E53333;">shell</span><span style="color:#E53333;">脚本</span> n</p>n<img src="https://img-bss.csdn.net/201905080235428472.png" alt="" /><p>n <br /></p>n<p>n <span style="color:#E53333;">核心知识之各种索引课堂剖析</span> n</p>n<img src="https://img-bss.csdn.net/201905080236176566.png" alt="" /><p>n <br /></p>n<p>n <span style="color:#E53333;">核心必备知识之事务课堂实战演练<img src="https://img-bss.csdn.net/201905080237158987.png" alt="" /></span> n</p>n<span style="color:#E53333;">用户权限与</span><span style="color:#E53333;">ip</span><span style="color:#E53333;">网段登录问题实战</span> n<p>n <br /></p>n<img src="https://img-bss.csdn.net/201905080237517680.png" alt="" /><p>n <br /></p>n<p>n <span style="color:#E53333;">慢查询日志开启与问题定位</span> n</p>n<img src="https://img-bss.csdn.net/201905080238168645.png" alt="" /><p>n <br /></p>n<p>n <span style="color:#E53333;">sql</span><span style="color:#E53333;">语句的简单优化思路演练</span> n</p>n<img src="https://img-bss.csdn.net/201905080238367998.png" alt="" /><p>n <br /></p>n<p>n <span style="color:#E53333;">数据安全之备份与恢复</span> n</p>n<img src="https://img-bss.csdn.net/201905080239199550.png" alt="" /><p>n <br /></p>n<p>n <img src="https://img-bss.csdn.net/201905080312004627.jpg" alt="" /></p>n<p>n <br /></p>
Yii框架下的where条件查询
条件查询 $customers = Customer::find()->where($cond)->all();  $cond就是我们所谓的条件,条件的写法也根据查询数据的不同存在差异,那么如何用yii2的方式来写查询条件呢? [[简单条件]] // SQL: (type = 1) AND (status = 2). $cond = ['type' => 1, 'status'
用ADO实现数据库条件查询
用ADO实现数据库条件查询 用ADO实现数据库条件查询 用ADO实现数据库条件查询 用ADO实现数据库条件查询
在where条件语句中使用条件查询
在一条语句中的where条件语句中使用转换函数convert,将一个datetime字段通过计算转换成字符变量,与字符常量比较,将该计算放在select语句中得出结果,将该结果放到where中作常量,却不能查询出结果?
数据库条件查询
排序查询 /* 排序查询:对查询结构进行排序 关键字:order by 字段名 [ASC|DESC] ASC:升序(从小到大),默认的 DESC:降序(从大到小) */ 查询所有记录的name和price,结构按照价格 从大到小进行排序 SELECT pname,price FROM product ORDER BY price DESC...
数据库之条件查询
–条件查询(select condition From table name where searchcondition)–1、比较运算符(=,<>,>,<,>=,<=)注意:<> 等价于 != --查询Student_info中所有女生信息 use Student_412 select * From Student_info where Sgender = '女'–
数据库条件查询
&amp;lt;!-- 根据条件查询 --&amp;gt;  &amp;lt;select id=&quot;selectDeptRecord&quot; resultType=&quot;com.xx.entity.job&quot;&amp;gt; select * from job  &amp;lt;where&amp;gt; 1=1 &amp;lt;if test='Wtime!=&quot;&quot; and Wtime!=null'&amp;gt; and Wtime=#{Wt
用adb查看sqlite数据库
配置adb环境: sqlite3 命令: sqlite3 database.db 查看数据库,进入sqlite>模式 .table 查看所有表 .mode column 设置以列的形式格式化展示 .exit 退出 adb devices 列出所有的设备 adb start-server 开启adb服务
Android下用Sqlite数据库存储数据
第一步:  写个类 ,继承 SQLiteOpenHelper 1 public class MyDatabaseOpenHelper extends SQLiteOpenHelper { 2 3 } 第二步:  添加一个构造函数,并且  指定必要的参数 // context : 应用程序上下文 // name : 数据库的名称 // factory : 游标工
用Python操作SQLite数据库
本系列课程一共20套,每一套视频课程会深入讲解Python的一类知识点。Python是当今炙手可热的编程语言,可用于多个领域,人工智能、大数据、Web开发、移动开发、运维等。而且学习Python,将会更容易找到工作。本系列课程深入介绍了Python语言的方方面面,也是李宁老师其他课程的基础,如深度学习、科学计算、Web开发(Django Web框架)、全站开发、运维等。
用c#操作sqlite数据库
用c#操作sqlite数据库的一些基本操作
sqlite的where子句查询问题
[code=SQL]rnSELECT * FROM bodycheckitemrn[/code]rn使用这条语句可以正常查询出所数据;rn[code=SQL]rnSELECT * FROM bodycheckitem where Tjh = 110rn[/code]rn使用这条语句也可以正常查询处所对应的数据,其中Tjh为TEXT;rnrn[code=SQL]rnSELECT * FROM bodycheckitem where Tjh = 020647019rn[/code]rn这条语句不能正常查询出对应的数据,其结果为空,其中Tjh为TEXT;rnrn[code=SQL]rnSELECT * FROM bodycheckitem where Tjh = '020647019'rn[/code]rn这条语句能正常查询出对应的数据,其中Tjh为TEXT。rn关于这张表的相关信息:rn[code=SQL]rnCREATE TABLE "bodycheckitem" (rn"patid" TEXT NOT NULL,rn"Tjh" TEXT NOT NULL,rn"Xmmc" TEXT NOT NULL,rn"Xmjg" TEXT NOT NULL,rn"Xmjgmc" TEXT NOT NULL,rn"Jgdw" TEXT NOT NULL,rn"Tjzt" TEXTrn)rn[/code]
MySQL第二天--where条件查询、视图及函数
//把数据库导出到脚本文件 mysqldump -uroot -p1234 --databases abc > d:/a/abc.sql //--databases是需要两个--   Where子句: Select 字段 From 表名where 条件 and  条件 or 条件  Update tabletableName set .. Where 条件 Delete from ta
DB2在where怎么根据日期条件查询呢?
很简单的一条语句,为什么不能执行?rnselect * from enterprise where edate='2007-12-7'rn把where后面删除就可以了,应该是edate='2007-12-7'这条语句的问题。
我这个linq 语句where 条件查询怎么弄
[img=https://img-bbs.csdn.net/upload/201805/22/1526959487_688643.jpg][/img]rnrn就是我现在要查询:我推荐了谁的查询。比如我张三 ,我推荐了李四 。我现在查询的就是我推荐了谁。rn[img=https://img-bbs.csdn.net/upload/201805/22/1526960290_752821.jpg][/img]rnrn我现在的问题 是[img=https://img-bbs.csdn.net/upload/201805/22/1526960417_634356.jpg][/img]rn这个页面我自己只有一个session.username. 我该怎么做rnrn才能查到我自己推荐了谁
mysql的5中查询子句之一where条件查询
mysql的5中查询字句,分别是where条件查询,group by分组查询,having,order by排序查询,limit 限制查询 此次测试数据我是用的zabbix的数据,每个人只需要从zabbix官网上将源码包下载下载,解压就可以了,最后在将数据导入到数据库即可。如果不会可以参考我的博客 zabbix server环境的搭建:http://blog.csdn.net/m0_378864
详谈单表查询中where条件查询的使用
单表查询 语法: select *|字段列表|表达式 from table_name [where 条件] [order by 字段列表] 代码如下: 首先创建表 create table student( id char(36) primary key, name varchar(8) not null, age int(3) default 0, mobile...
关于where条件查询追加字段的问题
[code=Java]rnString sqlstr = "select * from Table where ";rnint a = Integer.parseInt(request.getParameter("a"));rnint b = Integer.parseInt(request.getParameter("b"));rnint c = Integer.parseInt(request.getParameter("c"));rnint d = Integer.parseInt(request.getParameter("d"));rnrnif (a!= -1)rn sqlstr = sqlstr + " a=" + a;rnif (b != -1)rn sqlstr = sqlstr + " and b=" + b;rnif (c != -1)rn sqlstr = sqlstr + " and c=" + c;rnif (d!= -1)rnsqlstr = sqlstr + " and d=" + d;rn[/code]rn如果第一个字段a为空的话,会变成select * from Table where and b=... 这样会报错,以前一直用where1=1来处理的,现在因为这张表数据量比较大,会影响性能。so想问一下大家还有没有其他方法?
iBatis动态条件查询 where的if条件不执行
对象中有integer属性public class ExpirySet implements Serializable { private Integer status;在mybatis中进行条件判断 &amp;lt;select id=&quot;getRuleList&quot; resultType=&quot;com.fufang.credit.model.ExpirySet&quot; parameterType=&quot;com.fufa...
MySQL数据库-数据的条件查询(where) 命令演示
条件查询 elect … from 表名 where … 比较运算符 &gt; 查询大于18岁的信息 select * from students where age&gt;18; select id,name,gender from students where age&gt;18; &lt; 查询小于18岁的信息 select * from students where age&lt;1...
ado的sql中where怎么实现条件查询
我用sql的where条件查询语句,查询相关记录,rnm_pRecordset2->Open("SELECT * FROM address WHERE ip1>nIp", rntheApp.m_pConnection.GetInterfacePtr(),rnadOpenDynamic,rnadLockOptimistic,rnadCmdText);rnrnip1是双精度型,nIp为一double变量,当我直接用数据代替时,可以查到相关记录,如:WHERE ip1>234343434,但是当我用nIp代替时(nIp由用户输入一个数字,计算得到,在实行sql以前已经得到nIp的值),查询的时候会出现run time error,是不是sql不允许这么查询,如果是,应该怎么解决呢?rn还有,我想实现同时判断两个条件,即 ip1>nIp 而且nIp
用纯JSP实现按条件查询数据库
用纯JSP实现按条件查询数据库 不使用servlet跟框架的情况下,以纯jsp实现。search.jsp网页提交查询值,然后search.jsp用request.getParameter()方法取得查询参数,生成SQL语句,然后。准备个参数。 1 order //查询条件 String order = request.getParameter("order"); i
C++中MFC DLL 按条件查询SQLite
extern "C" int PASCAL EXPORT read(int AccName) {     AFX_MANAGE_STATE(AfxGetStaticModuleState());     sqlite3 * db = NULL; // 声明sqlite 关键结构指针     int result;//定义接收打开文件返回结果是否成功的变量     char** dbRes
在SQLite中怎么使用无符号数进行条件查询?
我有一列数据,是按无符号数存进去的,最高位有使用,使用sql语句可以实现方便的查询吗?
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview