Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/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
Sqlite 检查是否在SQLlite中创建了表和数据表_Sqlite_Flutter - Fatal编程技术网

Sqlite 检查是否在SQLlite中创建了表和数据表

Sqlite 检查是否在SQLlite中创建了表和数据表,sqlite,flutter,Sqlite,Flutter,如何检查我创建的表和数据库? 我得到一个错误,说没有表 发生异常。 SqfliteDatabaseException(DatabaseException(错误域=FMDatabase Code=1“无此类表格:addCash”用户信息={NSLocalizedDescription=无此类表格:addCash})sql“从addCash选择*参数[]}) 类DBProvider{ 数据库提供程序; 静态最终DBProvider db=DBProvider.uz(); 数据库(u)数据库;; 未来

如何检查我创建的表和数据库? 我得到一个错误,说没有表

发生异常。 SqfliteDatabaseException(DatabaseException(错误域=FMDatabase Code=1“无此类表格:addCash”用户信息={NSLocalizedDescription=无此类表格:addCash})sql“从addCash选择*参数[]})

类DBProvider{
数据库提供程序;
静态最终DBProvider db=DBProvider.uz();
数据库(u)数据库;;
未来获取数据库异步{
如果(_database!=null){
返回数据库;
}
_数据库=等待initDB();
返回数据库;
}
initDB()异步{
目录文档dir=wait getApplicationDocumentsDirectory();
stringpath=join(documentsDir.path,'app.db');
return wait openDatabase(路径,版本:1,onOpen:(db)async{},
onCreate:(数据库数据库,int版本)异步{
等待数据库执行(“”)
创建表addCash(
id整数主键,
内容文本默认值“”
)
''');
});
}
newAddCash(AddCash-AddCash)异步{
最终数据库=等待数据库;
var res=await db.insert('addCash',addCash.toJson());
返回res;
}
getAddCashx()异步{
最终数据库=等待数据库;
var res=await db.query('addCash');//此处有错误
List addCash=res.isNotEmpty
?res.map((addCash)=>addCash.fromJson(addCash)).toList()
: [];
返还现金;
}
getAddCash(int-id)异步{
最终数据库=等待数据库;
var res=await db.query('addCash',其中:'id=?',wherergs:[id]);
return res.isNotEmpty?AddCash.fromJson(res.first):null;
}
updateAddCash(AddCash AddCash)异步{
最终数据库=等待数据库;
var res=await db.update('addCash',addCash.toJson(),
其中:“id=?”,wherergs:[addCash.id]);
返回res;
}
deleteAddCash(int-id)异步{
最终数据库=等待数据库;
db.delete('addCash',其中:'id=?',其中rgs:[id]);
}
}
有关查询
sqlite\u master
表的详细信息,请参阅

或者,使用第三方数据库管理工具打开数据库。。。非常适合做各种数据库准备、验证、检查、测试SQL等

否则,使用SELECT查询测试它,就像您已经做的一样。如果它返回一个错误,那么显然该表丢失了。您是否有足够的异常处理来报告
onCreate
函数中的错误
onCreate
应该适用于新数据库,但可能您正在打开一个在该工作之前创建的数据库,所以它没有定义模式?(
onCreate
如果数据库已经存在,则不会调用。)

您可以使用代码没有演示的其他各种调试技术,如日志记录、跟踪、异常处理等。您可以做更多的事情来收集有关代码运行方式的信息

class DBProvider {
  DBProvider._();

  static final DBProvider db = DBProvider._();
  Database _database;

  Future<Database> get database async {
    if (_database != null) {
      return _database;
    }

    _database = await initDB();
    return _database;
  }

  initDB() async {
    Directory documentsDir = await getApplicationDocumentsDirectory();
    String path = join(documentsDir.path, 'app.db');

    return await openDatabase(path, version: 1, onOpen: (db) async {},
        onCreate: (Database db, int version) async {

      await db.execute('''
                CREATE TABLE addCash(
                    id INTEGER PRIMARY KEY,
                    contents TEXT DEFAULT ''
                )
            ''');
    });
  }

  newAddCash(AddCash addCash) async {
    final db = await database;
    var res = await db.insert('addCash', addCash.toJson());

    return res;
  }

  getAddCashx() async {
    final db = await database;
    var res = await db.query('addCash'); // ERROR IS HERE
    List<AddCash> addCash = res.isNotEmpty
        ? res.map((addCash) => AddCash.fromJson(addCash)).toList()
        : [];

    return addCash;
  }

  getAddCash(int id) async {
    final db = await database;
    var res = await db.query('addCash', where: 'id = ?', whereArgs: [id]);

    return res.isNotEmpty ? AddCash.fromJson(res.first) : null;
  }

  updateAddCash(AddCash addCash) async {
    final db = await database;
    var res = await db.update('addCash', addCash.toJson(),
        where: 'id = ?', whereArgs: [addCash.id]);

    return res;
  }

  deleteAddCash(int id) async {
    final db = await database;

    db.delete('addCash', where: 'id = ?', whereArgs: [id]);
  }
}