Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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
Android Flatter SQFLite数据库异常与rawDelete_Android_Database_Flutter_Sqflite - Fatal编程技术网

Android Flatter SQFLite数据库异常与rawDelete

Android Flatter SQFLite数据库异常与rawDelete,android,database,flutter,sqflite,Android,Database,Flutter,Sqflite,所以,我在我的应用程序中使用了很长一段时间。除了rawDelete,一切都很好 deleteDone(int listType) async { int check = 0; var dbClient = await db; var toDelete = await dbClient.rawDelete( 'SELECT * FROM $tableName WHERE $colType = $listType AND $colDone = $chec

所以,我在我的应用程序中使用了很长一段时间。除了rawDelete,一切都很好

  deleteDone(int listType) async { 
    int check = 0;
    var dbClient = await db;
    var toDelete = await dbClient.rawDelete(
        'SELECT * FROM $tableName WHERE $colType = $listType AND $colDone = $check');
  }

// other important part of the code:

  final String tableName = "listTable";
  final String colId = "id";
  final String colTaskName = "name";
  final String colType = "type";
  final String colDone = "done";

Future<Database> initDb() async {
    Directory documentDirectory = await getApplicationDocumentsDirectory();
    String path = join(documentDirectory.path, "todo.db");
    var ourDb = await openDatabase(path, version: 1, onCreate: _onCreate);
    return ourDb;
  }

  void _onCreate(Database db, int version) async {
    await db.execute(
        "CREATE TABLE listTable (id INTEGER PRIMARY KEY, name TEXT, type TEXT, done TEXT)");
  }
以下是调试日志错误:

V/DartMessenger(25865): Received message from Dart over channel 'com.tekartik.sqflite'
V/DartMessenger(25865): Deferring to registered handler to process message.
V/DartMessenger(25865): Received message from Dart over channel 'com.tekartik.sqflite'
V/DartMessenger(25865): Deferring to registered handler to process message.
E/flutter (25865): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: DatabaseException(unknown error (code 0 SQLITE_OK): Queries can be performed using SQLiteDatabase query or rawQuery methods only.) sql 'SELECT * FROM listTable WHERE type = 0 AND done = 0' args []}
E/flutter (25865): #0      wrapDatabaseException 
package:sqflite/src/exception_impl.dart:11
E/flutter (25865): <asynchronous suspension>
E/flutter (25865): #1      SqfliteDatabaseFactoryImpl.wrapDatabaseException 
package:sqflite/src/factory_impl.dart:29
E/flutter (25865): #2      _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin.safeInvokeMethod 
package:sqflite/src/database_mixin.dart:184
E/flutter (25865): #3      _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin.txnRawUpdate.<anonymous closure> 
package:sqflite/src/database_mixin.dart:380
E/flutter (25865): #4      _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin.txnSynchronized.<anonymous closure> 
package:sqflite/src/database_mixin.dart:300
E/flutter (25865): #5      BasicLock.synchronized 
package:synchronized/src/basic_lock.dart:31
E/flutter (25865): <asynchronous suspension>
E/flutter (25865): #6      _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin.txnSynchronized 
package:sqflite/src/database_mixin.dart:296
E/flutter (25865): <asynchronous suspension>
E/flutter (25865): #7      _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin.txnWriteSynchronized 
E/flutter (25865): #8      _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin.txnRawUpdate 
package:sqflite/src/database_mixin.dart:379
E/flutter (25865): #9      _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin&SqfliteDatabaseExecutorMixin.rawUpdate 
package:sqflite/src/database_mixin.dart:124
E/flutter (25865): #10     _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin&SqfliteDatabaseExecutorMixin.rawDelete 
package:sqflite/src/database_mixin.dart:157
E/flutter (25865): #11     DatabaseHelper.deleteDone 
package:mentor101/…/data/todo_db.dart:126
E/flutter (25865): <asynchronous suspension>
E/flutter (25865): #12     TodoModel.deleteDoneTasks 
package:mentor101/…/model/todo_model.dart:90
E/flutter (25865): #13     TodoState.todoBottomActions.<anonymous closure> 
package:mentor101/…/ui/todos.dart:242
E/flutter (25865): #14     _InkResponseState._handleTap 
package:flutter/…/material/ink_well.dart:635
E/flutter (25865): #15     _InkResponseState.build.<anonymous closure> 
package:flutter/…/material/ink_well.dart:711
E/flutter (25865): #16     GestureRecognizer.invokeCallback 
package:flutter/…/gestures/recognizer.dart:182
E/flutter (25865): #17     TapGestureRecognizer._checkUp 
package:flutter/…/gestures/tap.dart:365
E/flutter (25865): #18     TapGestureRecognizer.acceptGesture 
package:flutter/…/gestures/tap.dart:312
E/flutter (25865): #19     GestureArenaManager.sweep 
package:flutter/…/gestures/arena.dart:156
E/flutter (25865): #20     _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent 
package:flutter/…/gestures/binding.dart:222
E/flutter (25865): #21     _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent 
package:flutter/…/gestures/binding.dart:198
E/flutter (25865): #22     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent 
package:flutter/…/gestures/binding.dart:156
E/flutter (25865): #23     _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue 
package:flutter/…/gestures/binding.dart:102
E/flutter (25865): #24     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket 
package:flutter/…/gestures/binding.dart:86
E/flutter (25865): #25     _rootRunUnary  (dart:async/zone.dart:1136:13)
E/flutter (25865): #26     _CustomZone.runUnary  (dart:async/zone.dart:1029:19)
E/flutter (25865): #27     _CustomZone.runUnaryGuarded  (dart:async/zone.dart:931:7)
E/flutter (25865): #28     _invoke1  (dart:ui/hooks.dart:250:10)
E/flutter (25865): #29     _dispatchPointerDataPacket  (dart:ui/hooks.dart:159:5)
E/flutter (25865):
I/flutter (25865): list: [Instance of 'Task', Instance of 'Task', Instance of 'Task']
V/DartMessenger(25865):通过“com.tekartik.sqflite”频道接收到来自Dart的消息
V/DartMessenger(25865):遵从已注册的处理程序来处理消息。
V/DartMessenger(25865):通过“com.tekartik.sqflite”频道接收到来自Dart的消息
V/DartMessenger(25865):遵从已注册的处理程序来处理消息。
E/flatter(25865):[ERROR:flatter/lib/ui/ui\u dart\u state.cc(148)]未处理的异常:DatabaseException(未知错误(代码0 SQLITE\u OK):只能使用SQLITE数据库查询或rawQuery方法执行查询。)sql“从列表表中选择*,其中type=0且done=0”参数[]
E/颤振(25865):#0 wrapDatabaseException
包:sqflite/src/exception\u impl.dart:11
E/颤振(25865):
E/颤振(25865):#1 sqflitedDatabaseFactoryImpl.wrapDatabaseException
包装:sqflite/src/factory_impl.dart:29
E/Flatter(25865):#2 SqflitedDatabase&Object&SqflitedDatabaseMixin.safeInvokeMethod
包:sqflite/src/database_mixin.dart:184
E/flatter(25865):#3 SqflitedDatabase&Object&SqflitedDatabaseMixin.txnRawUpdate。
包装:sqflite/src/database_mixin.dart:380
E/flatter(25865):#4 SqflitedDatabase&Object&SqflitedDatabaseMixin.txn已同步。
包:sqflite/src/database_mixin.dart:300
E/颤振(25865):#5 BasicLock.synchronized
包:synchronized/src/basic_lock.dart:31
E/颤振(25865):
E/颤振(25865):#6#SQflitedDatabase&Object&SQflitedDatabaseMixin.txn已同步
包:sqflite/src/database_mixin.dart:296
E/颤振(25865):
E/flatter(25865):#7 SqflitedDatabase&Object&SqflitedDatabaseMixin.txnWriteSynchronized
E/flatter(25865):#8 SqflitedDatabase&Object&SqflitedDatabaseMixin.txnRawUpdate
包:sqflite/src/database_mixin.dart:379
E/Flatter(25865):#9#SQflitedDatabase&Object&SQflitedDatabaseMixin&SQflitedDatabaseExecutorMixin.rawUpdate
包:sqflite/src/database_mixin.dart:124
E/flatter(25865):#10#sqflitedDatabase&Object&sqflitedDatabaseMixin&sqflitedDatabaseExecutorMixin.rawDelete
软件包:sqflite/src/database_mixin.dart:157
E/flatter(25865):#11 DatabaseHelper.deleteDone
包:mentor101/../data/todo_db.dart:126
E/颤振(25865):
E/颤振(25865):#12 TodoModel.deleteDoneTasks
软件包:导师101/../model/todo_model.dart:90
E/颤振(25865):#13 ToDestate.ToDobototomactions。
包:mentor101/../ui/todos.dart:242
E/颤振(25865):#14!
包装:颤振/../材料/墨水井。省道:635
E/颤振(25865):#15#InkResponseEstate.build。
包装:颤振/../material/ink\u井。省道:711
E/颤振(25865):#16手势识别器。调用回调
软件包:flatter/../signatures/recognizer.dart:182
E/颤振(25865):#17 TapGestureRecognitor.#检查
套装:颤振/../signatures/tap.dart:365
E/颤振(25865):#18 TapGestureRecognitor.Accept手势
套装:颤振/../signatures/tap.dart:312
E/颤振(25865):#19手势管理器
套装:颤振/../signatures/arena.飞镖:156
E/颤振(25865):#20#WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent
包裹:颤振/../signatures/binding.dart:222
E/颤振(25865):#21 35; WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent
包装:颤振/../signatures/binding.dart:198
E/颤振(25865):#22#WidgetsFlutterBinding&BindingBase&GestureBinding.#手点事件
包装:颤振/../signatures/binding.省道:156
E/颤振(25865):#23#WidgetsFlutterBinding&BindingBase&GestureBinding。(U Flushpointer eventqueue)
包裹:颤振/../signatures/binding.dart:102
E/颤振(25865):#24#WidgetsFlutterBinding&BindingBase&GestureBinding.(U handlePointerDataPacket)
包装:颤振/../signatures/binding.dart:86
E/颤振(25865):#25 35;根运行单位(dart:async/zone.dart:1136:13)
E/flatter(25865):#26 _CustomZone.runUnary(dart:async/zone.dart:1029:19)
E/flatter(25865):#27 _CustomZone.runUnaryGuarded(dart:async/zone.dart:931:7)
E/颤振(25865):#28 _调用1(省道:ui/挂钩。省道:250:10)
E/flatter(25865):#29 dispatchPointerDataPacket(dart:ui/hooks.dart:159:5)
E/颤振(25865):
I/flatter(25865):列表:[“任务”实例、“任务”实例、“任务”实例]
我不认为数据库和其他CRUD一样有任何问题 运作良好。同样的查询也适用于rawQuery,但是 无法使用rawDelete。我已经检查了参数列表类型和
选中,两者都给出了正确的值,但没有从列表中删除任何内容。

rawDelete
中,您正在使用
SELECT…
但您想删除正确的内容吗?是的,我想删除。哦,那么什么是用于删除的SQL命令呢?那么请阅读并查找
rawDelete
示例感谢原来它是delete FROM。顺便说一句,您有方法,为什么不使用它呢?
V/DartMessenger(25865): Received message from Dart over channel 'com.tekartik.sqflite'
V/DartMessenger(25865): Deferring to registered handler to process message.
V/DartMessenger(25865): Received message from Dart over channel 'com.tekartik.sqflite'
V/DartMessenger(25865): Deferring to registered handler to process message.
E/flutter (25865): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: DatabaseException(unknown error (code 0 SQLITE_OK): Queries can be performed using SQLiteDatabase query or rawQuery methods only.) sql 'SELECT * FROM listTable WHERE type = 0 AND done = 0' args []}
E/flutter (25865): #0      wrapDatabaseException 
package:sqflite/src/exception_impl.dart:11
E/flutter (25865): <asynchronous suspension>
E/flutter (25865): #1      SqfliteDatabaseFactoryImpl.wrapDatabaseException 
package:sqflite/src/factory_impl.dart:29
E/flutter (25865): #2      _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin.safeInvokeMethod 
package:sqflite/src/database_mixin.dart:184
E/flutter (25865): #3      _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin.txnRawUpdate.<anonymous closure> 
package:sqflite/src/database_mixin.dart:380
E/flutter (25865): #4      _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin.txnSynchronized.<anonymous closure> 
package:sqflite/src/database_mixin.dart:300
E/flutter (25865): #5      BasicLock.synchronized 
package:synchronized/src/basic_lock.dart:31
E/flutter (25865): <asynchronous suspension>
E/flutter (25865): #6      _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin.txnSynchronized 
package:sqflite/src/database_mixin.dart:296
E/flutter (25865): <asynchronous suspension>
E/flutter (25865): #7      _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin.txnWriteSynchronized 
E/flutter (25865): #8      _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin.txnRawUpdate 
package:sqflite/src/database_mixin.dart:379
E/flutter (25865): #9      _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin&SqfliteDatabaseExecutorMixin.rawUpdate 
package:sqflite/src/database_mixin.dart:124
E/flutter (25865): #10     _SqfliteDatabaseBase&Object&SqfliteDatabaseMixin&SqfliteDatabaseExecutorMixin.rawDelete 
package:sqflite/src/database_mixin.dart:157
E/flutter (25865): #11     DatabaseHelper.deleteDone 
package:mentor101/…/data/todo_db.dart:126
E/flutter (25865): <asynchronous suspension>
E/flutter (25865): #12     TodoModel.deleteDoneTasks 
package:mentor101/…/model/todo_model.dart:90
E/flutter (25865): #13     TodoState.todoBottomActions.<anonymous closure> 
package:mentor101/…/ui/todos.dart:242
E/flutter (25865): #14     _InkResponseState._handleTap 
package:flutter/…/material/ink_well.dart:635
E/flutter (25865): #15     _InkResponseState.build.<anonymous closure> 
package:flutter/…/material/ink_well.dart:711
E/flutter (25865): #16     GestureRecognizer.invokeCallback 
package:flutter/…/gestures/recognizer.dart:182
E/flutter (25865): #17     TapGestureRecognizer._checkUp 
package:flutter/…/gestures/tap.dart:365
E/flutter (25865): #18     TapGestureRecognizer.acceptGesture 
package:flutter/…/gestures/tap.dart:312
E/flutter (25865): #19     GestureArenaManager.sweep 
package:flutter/…/gestures/arena.dart:156
E/flutter (25865): #20     _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent 
package:flutter/…/gestures/binding.dart:222
E/flutter (25865): #21     _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent 
package:flutter/…/gestures/binding.dart:198
E/flutter (25865): #22     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent 
package:flutter/…/gestures/binding.dart:156
E/flutter (25865): #23     _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue 
package:flutter/…/gestures/binding.dart:102
E/flutter (25865): #24     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket 
package:flutter/…/gestures/binding.dart:86
E/flutter (25865): #25     _rootRunUnary  (dart:async/zone.dart:1136:13)
E/flutter (25865): #26     _CustomZone.runUnary  (dart:async/zone.dart:1029:19)
E/flutter (25865): #27     _CustomZone.runUnaryGuarded  (dart:async/zone.dart:931:7)
E/flutter (25865): #28     _invoke1  (dart:ui/hooks.dart:250:10)
E/flutter (25865): #29     _dispatchPointerDataPacket  (dart:ui/hooks.dart:159:5)
E/flutter (25865):
I/flutter (25865): list: [Instance of 'Task', Instance of 'Task', Instance of 'Task']