SQLite数据库的基本问题。android记事本教程
这是一个非常基本的问题。我只是想了解SQLite数据库是如何工作的。所以,我要做的是:在下面的代码部分(摘自记事本教程第3个练习),我将KEY_TITLE更改为KEY_NAME,将我找到的所有地方的TITLE更改为NAME。应用程序崩溃。为什么会发生这种情况SQLite数据库的基本问题。android记事本教程,android,database,sqlite,Android,Database,Sqlite,这是一个非常基本的问题。我只是想了解SQLite数据库是如何工作的。所以,我要做的是:在下面的代码部分(摘自记事本教程第3个练习),我将KEY_TITLE更改为KEY_NAME,将我找到的所有地方的TITLE更改为NAME。应用程序崩溃。为什么会发生这种情况 public static final String KEY_TITLE = "title"; //change to: public static final String KEY_NAME = "name"; public st
public static final String KEY_TITLE = "title";
//change to: public static final String KEY_NAME = "name";
public static final String KEY_BODY = "body";
public static final String KEY_ROWID = "_id";
private static final String TAG = "NotesDbAdapter";
private DatabaseHelper mDbHelper;
private SQLiteDatabase mDb;
/**
* Database creation sql statement
*/
private static final String DATABASE_CREATE =
"create table notes (_id integer primary key autoincrement, "
+ "title text not null, body text not null);";
/*改为:
私有静态最终字符串数据库\u创建=
“创建表注释(_idinteger主键自动递增,”
+“名称文本不为空,正文文本不为空);”;
*/如果您复制了堆栈跟踪(使用logcat/DDMS)或复制了整个SQLiteDBAdapter,这将非常有用,但只要看看您发布的内容,您肯定会遇到一个问题,即在sqlite database create语句中使用了错误的字段名 “标题”字段应重命名为“名称”,以匹配更改的列名 更改:
private static final String DATABASE_CREATE =
"create table notes (_id integer primary key autoincrement, "
+ "title text not null, body text not null);";
到
我还倾向于在create语句中使用statics本身,因此可以像下面这样编写:
private static final String DATABASE_CREATE =
"create table notes (" + KEY_ROWID + " integer primary key autoincrement, "
+ KEY_NAME + " text not null, " + KEY_BODY + " text not null);";
然后您可以经常更改名称,而不会遇到数据库创建破坏。我想问题是。。您正在使用KEY_NAME=“NAME”。。。现在,就我在代码中看到的情况来看,您并没有创建一个包含“name”冒号的表。现在,您可能再次尝试访问name列的值,该列实际上不在表中排序,所以它会引发异常。但是,看看日志(如果你在这里发帖的话)可以为这个问题提供更好的答案
干杯 日志中是否有错误?程序崩溃前有错误吗?我就是这么做的。但它还是崩溃了。我被难住了。我明白了。我从手机上卸载了应用程序,并重新安装了它。现在它可以工作了。你知道为什么会这样吗?可能应用程序已经创建了一个不同列的表。所以,当您访问该表时,它抛出了错误。当您删除并重新安装时。。它刚刚创建了一个新表…带有你想要的颜色。我想这可能就是原因
private static final String DATABASE_CREATE =
"create table notes (" + KEY_ROWID + " integer primary key autoincrement, "
+ KEY_NAME + " text not null, " + KEY_BODY + " text not null);";