当前位置:编程学习 > wap >>

新手对于SQLite的疑惑

非计算机专业,没学过数据库,最近要用到的时候腿短了。。
看了好多人家的代码,自己写出来返回异常:
android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
然后我就百度,相关的帖子一个个看,又差了文档,总结下来问题在于:主键不为一或一数据为空
所以觉得是这两处可能有问题,求指个方向
public void onCreate(SQLiteDatabase db) {

db.execSQL("create table notes ("+KEY_ROWID+
"INTEGER PRIMARY KEY AUTOINCREMENT, "
+ KEY_TEXT+" TEXT NOT NULL);");

}
//此处创建table的命令是否是对的?

public long createNote(String title) {
ContentValues values = new ContentValues();
values.put(KEY_TITLE, title);
Log.e("values", values.toString());//此处返回值正常 是参数title
long rowId = db.insert(TBL_NAME, null, values);
// An exception that indicates that an integrity constraint was
// violated.
Log.e("rowid", String.valueOf(rowId));//此处返回值 为 -1
return rowId;
} SQLite 数据库 异常 --------------------编程问答-------------------- 創建表的時候缺少空格

 "INTEGER PRIMARY KEY AUTOINCREMENT, "
 |
添加空格 --------------------编程问答-------------------- 请问哪里加空格? 是这样?
db.execSQL("create table notes ("+KEY_ROWID+
"INTEGER PRIMARY KEY AUTOINCREMENT,  "
+ KEY_TEXT+" TEXT NOT NULL);");
试了一下还是不对呀 --------------------编程问答-------------------- db.execSQL("create table notes (" + KEY_ROWID +
" INTEGER PRIMARY KEY AUTOINCREMENT,  "
+ KEY_TEXT +" TEXT NOT NULL);");

试试!
--------------------编程问答-------------------- 我画的不清楚吗,INTEGER的第一个字母前面加个空格 --------------------编程问答--------------------
引用 3 楼 xzt259377 的回复:
db.execSQL("create table notes (" + KEY_ROWID +
" INTEGER PRIMARY KEY AUTOINCREMENT,  "
+ KEY_TEXT +" TEXT NOT NULL);");

试试!

不对奥~。~ 还是一样的异常 弱弱的问下,这和我原来的有区别么 --------------------编程问答--------------------
引用 4 楼 iltgcl 的回复:
我画的不清楚吗,INTEGER的第一个字母前面加个空格

奥 懂了。。之前是错的。。谢谢了 可是应该还有别的问题 我在看看  --------------------编程问答--------------------
引用 5 楼 sjyhehe 的回复:
Quote: 引用 3 楼 xzt259377 的回复:

db.execSQL("create table notes (" + KEY_ROWID +
" INTEGER PRIMARY KEY AUTOINCREMENT,  "
+ KEY_TEXT +" TEXT NOT NULL);");

试试!

不对奥~。~ 还是一样的异常 弱弱的问下,这和我原来的有区别么



"     这里要有空格        INTEGER PRIMARY KEY AUTOINCREMENT,  "
+     这里要有空格        KEY_TEXT +" TEXT NOT NULL);"); --------------------编程问答--------------------
引用 7 楼 xzt259377 的回复:
Quote: 引用 5 楼 sjyhehe 的回复:

Quote: 引用 3 楼 xzt259377 的回复:

db.execSQL("create table notes (" + KEY_ROWID +
" INTEGER PRIMARY KEY AUTOINCREMENT,  "
+ KEY_TEXT +" TEXT NOT NULL);");

试试!

不对奥~。~ 还是一样的异常 弱弱的问下,这和我原来的有区别么



"     这里要有空格        INTEGER PRIMARY KEY AUTOINCREMENT,  "
+     这里要有空格        KEY_TEXT +" TEXT NOT NULL);");




db.execSQL("create table notes (" 
+ KEY_ROWID +
"     这里要有空格        INTEGER PRIMARY KEY AUTOINCREMENT,"
+ KEY_TEXT +
"     这里要有空格        TEXT NOT NULL);");
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,