如何解决"没有这样的表:" android中的错误?

时间:2014-12-10 11:37:46

标签: android sqlite exception

当我执行查询时,我得到了这个例外。请找到logcat。

请在此处找到代码。

public static final String CLASS_ID="classid";
public static final String CLASS_NAME="classname";
public static final String TABLE_REMINDMEMASTER="remindmemaster";

public RemindmeDatabase(Context context) {
    super(context, KonnectMeDataBase.DATABASE_NAME, null, 1);
    // TODO Auto-generated constructor stub
}
//create table remindmemaster table
String CREATE_REMINDME_MASTER="CREATE TABLE remindmemaster(id INTEGER PRIMARY KEY AUTOINCREMENT,"
        +"instructions TEXT,rmd_f INTEGER,startdate TEXT,enddate TEXT,timings TEXT,"
        +" pid INTEGER,sync_f INTEGER,capturetime TEXT,serverid TEXT,crte_ts  TEXT , updt_ts TEXT)";    

logcat的:

12-10 16:56:29.093: E/RemindMeDB(25575): remindmemaster Row Inserted at 
12-10 16:56:29.094: E/checkServeridExist(25575): serverid---0

12-10 16:56:29.094: E/checkServeridExist(25575): localServerId---null

12-10 16:56:29.095: E/SQLiteLog(25575): (1) no such table: remindmemaster

12-10 16:56:29.101: E/SQLiteDatabase(25575): Error inserting serverid= updt_ts=2014-12-10 16:56:29 rmd_f=0 startdate=10-12-2014 instructions=hiii capturetime=16:56:29 timings=16:24,16:25, pid=0 crte_ts=2014-12-10 16:56:29 enddate=30-12-2014 sync_f=0
12-10 16:56:29.101: E/SQLiteDatabase(25575): android.database.sqlite.SQLiteException: no such table: remindmemaster (code 1): , while compiling: INSERT INTO remindmemaster(serverid,updt_ts,rmd_f,startdate,instructions,capturetime,timings,pid,crte_ts,enddate,sync_f) VALUES (?,?,?,?,?,?,?,?,?,?,?)
12-10 16:56:29.101: E/SQLiteDatabase(25575):    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
12-10 16:56:29.101: E/SQLiteDatabase(25575):    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)

12-10 16:56:29.101: E/SQLiteDatabase(25575):    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
12-10 16:56:29.101: 
E/SQLiteDatabase(25575):    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)

2 个答案:

答案 0 :(得分:0)

您在设备中安装应用程序一次后,或者​​未正确创建应用程序,就添加了此创建表调用。

在表名和括号之间添加一个空格:

String CREATE_REMINDME_MASTER="CREATE TABLE remindmemaster (id INTEGER PRIMARY KEY AUTOINCREMENT,"
        +"instructions TEXT,rmd_f INTEGER,startdate TEXT,enddate TEXT,timings TEXT,"
        +" pid INTEGER,sync_f INTEGER,capturetime TEXT,serverid TEXT,crte_ts  TEXT , updt_ts TEXT)";

另外,清除数据,卸载,然后重新运行应用程序并检查。这应该有用。

希望这会有所帮助。 :)

答案 1 :(得分:0)

最后我得到了答案,当数据库字段不匹配并将值发送到数据库字段顺序时,那个时候会出现这种类型的错误。 提出此错误时,请查看这些详细信息。

1)检查数据库字段的顺序和发送方法字段(插入字段顺序)。

2)检查此查询是否已执行。

3)检查" onCreate(SQLiteDatabase db)"我们的查询是否已在此方法中注册。