sqlite 为什么添加不了数据

作者&投稿:原殃 (若有异议请与网页底部的电邮联系)
关于SQlite插入数据不显示的问题~

首先我说下,我用了你的代码。是可以运行的,而且我也查看了数据库user表内容,成功插入了。首先我有几点不明白:
1.为什么你要单独创建数据库? SQLiteDatabase db=st.getWritableDatabase(); 数据库不存在的话会自动创建。创建的是多余的代码。
2.建议在用完数据库的时候关闭数据库。db.close();
不知道是不是你查询的方法有些问题。你再试试,或者你直接点击“插入数据的按钮”

附上查看数据库命令:
adb shell
sqlite3 data/data/sqliteshuju/databases/sqlshujuku
.table
select * from user ;

先进调试页面,

进入调试页面按钮
2.然后在你往数据库的地方打断点,单步运行

打断点,单步运行,查看错误
3.在debug一栏中查看错误信息
这里的错误是数据库表单的项目和实际插入的项目数量不符,原因是这个代码是修改过的,原来的数据库表项有52,改成4之后,安卓模拟器里边的数据库并没有删除,保留原来的4项表单。
解决方法:找到数据库,数据库在这里找,这位大哥的博客里有,删除数据库。
4.如果不是这个问题,复制错误信息,求助百度

你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入 INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。 此外,SQLite 不支持一些标准的 SQL 功能,特别是外键约束(FOREIGN KEY constrains),嵌套 transcaction 和 RIGHT OUTER JOIN 和 FULL OUTER JOIN, 还有一些 ALTER TABLE 功能。

Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。
SQLiteOpenHelper 的子类,至少需要实现三个方法:

1 构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。

2 onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。

3 onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。

SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入 INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。 此外,SQLite 不支持一些标准的 SQL 功能,特别是外键约束(FOREIGN KEY constrains),嵌套 transcaction 和 RIGHT OUTER JOIN 和 FULL OUTER JOIN, 还有一些 ALTER TABLE 功能。

Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。
SQLiteOpenHelper 的子类,至少需要实现三个方法:

1 构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。

2 onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。

3 onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。


旌德县13729899621: 为什么使用SQLite无法插入数据和创建表 -
中喻银翘: SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中.当某个值插入数据库时,SQLite 将检查它的类型.如果该类型与关联的...

旌德县13729899621: 在真机下,sqllite数据库插入不了数据,求助 -
中喻银翘: 1、执行insert语句的数据库是否是你查看的数据库.SqLite数据库是文件式数据库.容易操作数据库和查看数据库不一致的问题. 2、使用了事务,Insert之后,没有提交事务. 3、查看数据库的时候,是否刷新数据库.

旌德县13729899621: C# sqlite 没插入数据 -
中喻银翘: 把你的sql语句贴出来,sqlite3容易出现在sql语句问题,虽然在管理工具可以插入数据,但是用C#操作的话,是有区别的.

旌德县13729899621: 关于SQLite中插入数据出错的问题 -
中喻银翘: 如果insert语句表名后面不写字段列表,要求值列表中值的数量必须等于列的数量,此题可以有两个解决方案: 1. insert into Users(code, password, Name, IsLock, IsUserRight, IsBookRight, IsReaderRight, IsBorrowRight, IsLogRight, IsBakRight) ...

旌德县13729899621: sqlitestudio怎么添加数据 -
中喻银翘: 下载sqliteStudio,解压,如图,打开sqliteStudio.exe 即可使用 打开, 新建数据库,点击database-add database 输入数据库名,点击OK 点击数据名,在Table 右击,然后create a table 设置数据库的如图所示,大家可以详细的了解了.

旌德县13729899621: 求助!!Sqlite往表里添加数据出错?
中喻银翘: 低级错误,问题解决了!原来格式不对,应该这样写!db1.execSQL("INSERT INTO Info(name,age)VALUES(?),(?)",new Object[]{Javabinfile.getName(),Javabinfile.getAge()});

旌德县13729899621: for循环中无法插入sqlite数据库内容;单独的话可以,请问怎么解决 -
中喻银翘: 应该是数据库创建的有问题,result=sqlite3_exec(db,"create table student(name,score)",NULL,NULL,NULL);中create table student(name,score)没有指明创建的字段是什么类型的,改为create table student(ID integer primary key ...

旌德县13729899621: Android中我往Sqlite中添加数据 怎么就没反应 也不报错.下面是我的代码,大神请看. -
中喻银翘: 建议从DDMS中把sql文件取下来 然后用数据库打开该文件 看看对应表里是否已存入该数据.

旌德县13729899621: 关于SQlite插入数据不显示的问题 -
中喻银翘: 首先我说下,我用了你的代码.是可以运行的,而且我也查看了数据库user表内容,成功插入了.首先我有几点不明白:1.为什么你要单独创建数据库? SQLiteDatabase db=st.getWritableDatabase(); 数据库不存在的话会自动创建.创建的是多余的代码.2.建议在用完数据库的时候关闭数据库.db.close();不知道是不是你查询的方法有些问题.你再试试,或者你直接点击“插入数据的按钮”附上查看数据库命令:adb shellsqlite3 data/data/sqliteshuju/databases/sqlshujuku.tableselect * from user ;

旌德县13729899621: android sqlite中添加列失败是为什么? -
中喻银翘: 我发现最后的...................FIELD_TEXT + " text)"; 你的“text”前面没加空格

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网