Sqlite创建表一定要声明字段类型(ContentProvider查询的小问题)

用ContentProvider查询,有时候不太灵。。就像下面的代码,数据库中存在该数据,但是查不出来。原因可能是该字段没有声明类型。。

如下:

private final static String SQL_CREATE_TABLE_INSTALLED =

"CREATE TABLE if not exists " + TABLE_INSTALLED + " ( "

+ "id not null, "

+ "name text not null, "

+ "primary key(id)"

+")";

这样的id字段没有任何问题。使用下面的contentprovide进行查询会查不到数据。。。

ContentResolver resolver = context.getContentResolver();

Uri uri = getContentUri();

Cursor cursor = resolver.query(uri, DataColumns.ALL, DataColumns.ID

+ "=?", new String[] { Integer.toString(id) },

DEFAULT_ORDER);

这样的小问题还真是让人无解。

用下面的方法可以查得到。直接用参数查。

Cursor cursor = resolver.query(getContentUri(), DataColumns.ALL,

  DataColumns.ID + " = " + id, null, DEFAULT_ORDER);

所以,写代码还是得细心,在创建表时候,注意各个字段类型。sqlite不会进行检查字段类型的。

时间: 2024-11-07 17:24:39

Sqlite创建表一定要声明字段类型(ContentProvider查询的小问题)的相关文章

数据引擎 创建表完整语法,字段类型,约束条件

数据引擎 创建表完整语法,字段类型,约束条件 回顾: 1.设置密码与修改密码 mysqladmin -uroot -p password设置的密码 mysqladmin -uroot -p原密码 password新密码 2.破解密码 - 1.先关掉服务,杀死进程 - 2.跳过权限认证启动服务端 - 3.以游客的身份登录即可 3.制作服务 - 1.mysql --install - 2.net start mysql 4.语法: 库的操作: 增: create database 库名; creat

10天学会phpWeChat——第八天:Form类,丰富表单提交的字段类型

通过前面七讲的系列教程,我们完成了一个包含后台并自适应PC+h5移动端的文章管理模块. 在实际的生产环境中,文章投稿.商品上传等操作并不会简单局限于一个text和textarea组成的表单.在实际中,我们可能会用到web富文本编辑器(如ueditor.markdown).图片上传.多图上传.附件上传.地图标注等更加丰富的表单类型. 今天,我们开始<10天学会phpWeChat>的第八讲:Form类,丰富表单提交的字段类型. 一.什么是Form类? Form类是phpWeChat封装好的一个类,

Android开发时,sqlite创建表成功,insert不报错,但没有数据插入的原因

在android开发过程中,经常要通过sqlite来存储一些数据,这种应用应该是再平常不过了,但是有时难免一时疏忽,就会出现sqlite创建表成功,insert不报错,但没有数据插入. 具体问题详见如下代码: Context ctx;        SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); // 开启事务        db.beginTransaction();        try{                // 数

SQLite创建表并添加数据

- (void)viewDidLoad { [super viewDidLoad]; //创建表 [self creatTable]; //插入数据 [self insertTable]; } // -----------------------创建一个表-------------------- - (void)creatTable { // 1.创建一个数据库对象 sqlite3 *sqlite3 = nil; // 2.数据库的路径 NSString *path = [NSHomeDirec

查询表一张表的列名及字段类型

select  tabale_name,column_name,data_type,data_length,data_precision from all_tab_cols where table_name=' 表名(大写)' 查询     表名            ,字段名        ,字段的数据类型,字段的长度,字段的精度  从      视图(all_tab_cols)中    条件为表名=‘’ !条件中的表名必须是大写. !create table  t  (x,number(38

sqlite 的比较等运算是根据不同的值而不同的,并不是根据的字段类型,因为 sqlite 是弱类型字段

-------------------------------------------------- http://www.sqlite.com.cn/MySqlite/5/127.Html 在SQLite3.0版中,值被定义为什么类型只和值自身有关,和列没有关系,和变量也没有关系. (这有时被称作 弱类型.)所有其它的我们所使用的数据库引擎都受静态类型系统的限制,其中的所有值的类是由其所属列的属性决定的,而和值无关. 为了最大限度的增加SQLite数据库和其他数据库的兼容性,SQLite支持列

SQLite使用教程6 创建表

http://www.runoob.com/sqlite/sqlite-create-table.html SQLite 创建表 SQLite 的 CREATE TABLE 语句用于在任何给定的数据库创建一个新表.创建基本表,涉及到命名表.定义列及每一列的数据类型. 语法 CREATE TABLE 语句的基本语法如下: CREATE TABLE database_name.table_name( column1 datatype PRIMARY KEY(one or more columns),

MySQL-存储引擎-创建表-字段数据类型-严格模式-字段约束-键-02

目录 扩展点 查看服务端字符.IP.端口配置 取消本次错误输入 例外情况 database 数据库操作 table 数据表操作 查看MySQL存储引擎 常见几个存储引擎 InnoDB MyISAM MEMORY BLACKHOLE 引擎对应的本地化文件 案例 基本操作 创建表的完整语法 表记录基础操作 严格模式补充 查看数据库配置中变量名包含mode的配置参数 模糊匹配 基本数据类型 数据范围 整型 TINYINT SMALLINT MEDIUMINT INT BIGINT 应用场景 结合字段验

Mysql 知识点1-1 字段类型

整型(int  tinyint)    tinyint 默认创建的是有符号的1.控制多大多小是由类型来进行控制的,并不是后面Int(2)来控制的,他的意思不是只要两位.(代表零填充)int(M): M indicates the maximum display width for integer types2.设置整型的位数如果超出了设定的值取最大的值3.在使用整型的时候可以忽略括号中的值 tinyint 从 0 到 255 的整型数据.存储大小为 1 字节. smallint 从 -2^15