2012-02-19 145 views
0

当我试图访问一个表,我有这个错误:02-19 16:46:01.677:E/AndroidRuntime(13159):android.database.sqlite.SQLiteException:没有这样的表:备注

02-19 16:46:01.677:E/AndroidRuntime(13159):android.database.sqlite.SQLiteException:no such table:notes:INSERT INTO notes(user,text)VALUES('john','testingvalue')

但我创建了表!我在数据库中有两个表('用户'和'笔记'),我以相同的方式访问它们,但是当我尝试在表中注释时,我有这个错误。

这是代码:

package com.loopr; 

import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteDatabase.CursorFactory; 
import android.database.sqlite.SQLiteOpenHelper; 

public class SQL extends SQLiteOpenHelper { 

    String createUserTable = "CREATE TABLE users (name TEXT)"; 
    String createNotesTable = "CREATE TABLE notes (user TEXT, text TEXT)"; 

    public SQL(Context context, String name, CursorFactory factory, int version) { 
     super(context, name, factory, version); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(createNotesTable); 
     db.execSQL(createUserTable); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int before, int after) { 
     //Nothing at the moment 
    } 

} 

我能做些什么?谢谢。

+0

您是否先创建'user'表,然后更新代码以创建'notes'表? – waqaslam 2012-02-19 16:01:49

+0

尝试添加';'在你的SQL语句之后。 – Prexx 2012-02-19 16:07:06

回答

0

试着改变int version,并把这个在您的onUpgrade重写方法:

// Drop the old table. 
db.execSQL("DROP TABLE IF EXISTS notes"); 

// Create a new one. 
onCreate(db); 
0

你能做些什么?学习在Android上进行调试。阅读材料this link。找出如何使用DDMS的文件资源管理器从模拟器中提取数据库。获取像SQLite Manager(firefox)这样的工具来查看这些数据库 - 这对我非常有帮助。此外,您可以使用SQLite Manager在您的数据库上执行原始的sql语句,从而允许您同时制作sql并进行测试。

相关问题