Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQLiteException:没有这样的列错误_Java_Android_Sqlite - Fatal编程技术网

Java SQLiteException:没有这样的列错误

Java SQLiteException:没有这样的列错误,java,android,sqlite,Java,Android,Sqlite,我查看了这么多,发现很多人都有同样的错误,但他们似乎忘记了在create语句中添加列或缺少空格,我认为我没有这样做 我的日志如下: E/AndroidRuntime: FATAL EXCEPTION: main Process: com.gmd.referenceapplication, PID: 31988 android.database.sqlite.SQLiteException: no such column: QUANTITY (code 1): , while compiling:

我查看了这么多,发现很多人都有同样的错误,但他们似乎忘记了在create语句中添加列或缺少空格,我认为我没有这样做

我的日志如下:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.gmd.referenceapplication, PID: 31988
android.database.sqlite.SQLiteException: no such column: QUANTITY (code 1): , while compiling: SELECT * FROM FTS WHERE (QUANTITY MATCH ?)
  at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
  at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887)
  at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498)
  at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
  at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
  at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
  at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
  at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
  at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:400)
  at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:294)
  at com.gmd.referenceapplication.DatabaseTable.query(DatabaseTable.java:187)
  at com.gmd.referenceapplication.DatabaseTable.getWordMatches(DatabaseTable.java:179)
  at com.gmd.referenceapplication.SearchableActivity$1.onQueryTextChange(SearchableActivity.java:70)
  at android.support.v7.widget.SearchView.onTextChanged(SearchView.java:1150)
  at android.support.v7.widget.SearchView.access$2000(SearchView.java:103)
  at android.support.v7.widget.SearchView$12.onTextChanged(SearchView.java:1680)
  at android.widget.TextView.sendOnTextChanged(TextView.java:7991)
  at android.widget.TextView.handleTextChanged(TextView.java:8053)
  at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:10157)
  at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1033)
  at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:559)
  at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:492)
  at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:491)
  at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:685)
  at android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:445)
  at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:340)
  at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:78)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:148)
  at android.app.ActivityThread.main(ActivityThread.java:5417)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
E/AndroidRuntime:致命异常:主
进程:com.gmd.referenceapplication,PID:31988
android.database.sqlite.SQLiteException:没有这样的列:数量(代码1):,编译时:从FTS中选择*WHERE(数量匹配?)
位于android.database.sqlite.SQLiteConnection.nativePrepareStatement(本机方法)
位于android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887)
位于android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498)
位于android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
位于android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
位于android.database.sqlite.SQLiteQuery(SQLiteQuery.java:37)
位于android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
位于android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
位于android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:400)
位于android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:294)
位于com.gmd.referenceapplication.DatabaseTable.query(DatabaseTable.java:187)
位于com.gmd.referenceapplication.DatabaseTable.getWordMatches(DatabaseTable.java:179)
位于com.gmd.referenceapplication.SearchableActivity$1.onQueryTextChange(SearchableActivity.java:70)
在android.support.v7.widget.SearchView.onTextChanged(SearchView.java:1150)
位于android.support.v7.widget.SearchView.access$2000(SearchView.java:103)
位于android.support.v7.widget.SearchView$12.onTextChanged(SearchView.java:1680)
在android.widget.TextView.SendContextChanged(TextView.java:7991)
在android.widget.TextView.handleTextChanged上(TextView.java:8053)
在android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:10157)
在android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1033)
替换(SpannableStringBuilder.java:559)
替换(SpannableStringBuilder.java:492)
替换(SpannableStringBuilder.java:491)
位于android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:685)
在android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:445)中
在com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:340)上
在com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:78)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:148)
位于android.app.ActivityThread.main(ActivityThread.java:5417)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:726)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
数据库表类:

publicstaticfinalstringtag=“ConstantDatabase”;
//表中包含的列
公共静态最终字符串COL_QUANTITY=“QUANTITY”;
公共静态最终字符串COL_VALUE=“VALUE”;
公共静态最终字符串COL_definance=“definance”;
公共静态最终字符串COL_UNIT=“UNIT”;
公共静态最终字符串_id=“_id”;
//名称,t商标名称,版本
私有静态最终字符串数据库\u NAME=“常量”;
私有静态最终字符串FTS\u VIRTUAL\u TABLE=“FTS”;
私有静态最终int数据库_VERSION=1;
私有最终数据库OpenHelper mDatabaseOpenHelper;
私有最终上下文mcontext;
公共数据库表(上下文){
mDatabaseOpenHelper=新数据库openhelper(上下文);
mcontext=上下文;
}
私有类DatabaseOpenHelper扩展了SQLiteOpenHelper{
私有最终上下文mHelpPerContext;
私有SQLITE数据库mDatabase;
私有最终MyDataProvider dp=新的MyDataProvider(mcontext);
私有静态最终字符串FTS_表_创建=
“创建虚拟表”+FTS_虚拟表+
“使用fts3(“+_id+”整数主键,”+
列数量+文本+
列值+文本+
COL_不确定性+文本+
列单位+“文本”+”;
公共数据库OpenHelper(上下文){
super(上下文、数据库名称、null、数据库版本);
加载常数();
e(“数据库操作”,“调用了DatabaseOpenHelper构造函数,加载了常量?”);
mhelpocontext=上下文;
}
@凌驾
public void onCreate(SQLiteDatabase db){
mDatabase=db;
mDatabase.execSQL(FTS_TABLE_CREATE);
Log.e(“数据库操作”,“创建的常量表…”);
加载常数();
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
Log.w(标记,“将数据库从版本“+oldVersion+”升级到”
+新版本+”,将销毁所有旧数据);
db.execSQL(“如果存在DROP TABLE”+FTS_虚拟_TABLE);
onCreate(db);
}
公共SQLiteDatabase getmDatabase(){
返回mDatabase;
}
私有void loadConstants(){
新线程(newrunnable()){
公开募捐{
试一试{
loadConstantss();
}捕获(IOE异常){
抛出新的运行时异常(e);
}
}
}).start();
Log.e(“加载”,“填充常量表…”);
}
私有void loadConstantss()引发IOException{
HashMap=dp.getAllMap();
迭代器条目=map.entrySet().Iterator();
while(entries.hasNext()){
Map.Entry=entri