Android SQLIte 没有这样的 Table 错误 - 单击

Android SQLIte No Such Table Error - On Click

下午好,

我正在尝试为月度评估表创建一个数据库,作为我的一部分,这将是我申请的第二个 table 首先是登录详细信息。

我遵循相同的格式,但得到的是 "NO SUCH TABLE" 后跟我的变量名。

我希望这个问题以前已经出现过,以及如何根除它。

完全卸载 phone 上的旧应用程序,然后再次 运行 您的项目。发生此错误是因为 SQLiteOpenHelper 派生的 class 的 onCreate() 方法仅被调用一次。要再次调用它,要么从 SQLiteOpenHelper 派生另一个自定义 class 并在那里定义第二个 table,要么卸载旧的 APK 并重新 运行 项目来自 IDE。当您再次 运行 时,将创建两个 table。

像这样创建数据库:

public class Data_Base extends SQLiteOpenHelper {
    public static final String dbname = "suri29";
    public static final Integer dbversion = 1;
    public static final String dbtable = "user";
    public static final String name = "username";
    public static final String column_id = "_id";

    public Data_Base(Context context) {
        super(context, dbname, null, dbversion);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("create table " + dbtable + " (" + column_id
                + " integer primary key autoincrement, username text not null)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVesion, int newVersion) {
        // TODO Auto-generated method stub
        db.execSQL("drop table if exists " + dbtable);
        onCreate(db);
    }

在不深入研究您的代码的情况下,我有一些建议可以帮助您避免大量错误:

1) 使用 SQLite Database Helper 从数据库中创建、插入、删除数据...按照此 tutorial

2) 在每个查询中重写列名是一种非常糟糕的做法。在 class 的开头将它们初始化为 final static string 并在需要时使用此变量。

private final static String COL_COMMENTS = "COMMENTS";

3)Try and catch 您的所有数据库事务都带有日志记录以避免崩溃。

try{
  //Database transaction
 }
 catch(Exception e){
  e.printstacktrace();
 }

4)卸载应用程序并在添加任何新的 table.

后重新安装