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.
后重新安装
下午好,
我正在尝试为月度评估表创建一个数据库,作为我的一部分,这将是我申请的第二个 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.
后重新安装