First off, you will need to construct a sqlite database from your csv. This can be done in the following way:

  1. Create the necessary table (users.sql)

    CREATE TABLE users(
    firstname TEXT NOT NULL,
    lastname TEXT NOT NULL,
    dob TEXT NOT NULL
    );
  2. Create the sqlite database

    sqlite3 database.db < users.sql
  3. Insert the csv data

    sqlite3 database.db
    .mode csv
    .import data.csv users
  4. Put database.db into your assets and add that in pubspec.yaml.

    flutter:
    # ...
    assets:
    - assets/database.db
  5. In your app, you'll have to copy the asset file into "documents". This is slightly complicated.

    // Construct a file path to copy database to
    Directory documentsDirectory = await getApplicationDocumentsDirectory();
    String path = join(documentsDirectory.path, "asset_database.db"); // Only copy if the database doesn't exist
    if (FileSystemEntity.typeSync(path) == FileSystemEntityType.notFound){
    // Load database from asset and copy
    ByteData data = await rootBundle.load(join('assets', 'database.db'));
    List<int> bytes = data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes); // Save copied asset to documents
    await new File(path).writeAsBytes(bytes);
    }
  6. Lastly, you can access the database like so.

    Directory appDocDir = await getApplicationDocumentsDirectory();
    String databasePath = join(appDocDir.path, 'asset_database.db');
    this.db = await openDatabase(databasePath);
    initialized = true;
  7. Example query (this._initialize() is step 6)

    Future<List<Page>> search(String word, int parentId) async {
    if (!initialized) await this._initialize();
    String query = '''
    SELECT * FROM users
    LIMIT 25''';
    return await this.db.rawQuery(query);
    }

Sqlite in flutter, how database assets work的更多相关文章

  1. pycharm .sqlite文件拖动到Database里面为空

    pycharm .sqlite文件拖动到Database里面为空 查资料得到解决方法:

  2. sqlite 报错:database is locked

    在sqlite批量添加数据时,报错:database is locked. 解决办法:将db路径由相对路径设置为绝对路径.

  3. Sqlite出现SQL error: database disk image is malformed的处理

    SQLite有一个很严重的缺点就是不提供Repair命令.导致死亡提示database disk image is malformed它的产生有很多种可能,比如,磁盘空间不足,还有就是写入数据过程中突 ...

  4. PHP PDO sqlite ,Unable to Open database file的解决方法

    t.php在网站的根目录. fdy.db在inc文件夹下; t.php中sqlite路径写成相对路径 $db = new PDO('sqlite:inc/fdy.db'); 开始提示 Fatal er ...

  5. SQLITE 多进程查询出错database is locked

    程序比较简单: 父进程查询数据库A表,没有更新操作 子进程同时查询数据库A表,查询出来的内容更新B表. 两个进程都放到while(1)循环中,速度慢的话就是2S执行一次就没有错,执行的速度快的话就会报 ...

  6. sqlite 数据库错误 The database disk image is malformed database disk image

    收银机上的sqlite数据库经常出现这种错误,错误的原因有可能是突然断电或是一些不规范操作导致的. 网上一般的做法有两种: 方法一: 1.在https://www.sqlite.org/downloa ...

  7. Android SQLite Database Tutorial

    表名: 列(字段): 联系人实体类:构造方法,setters .getters方法 File:   Contact.java package com.example.sqlitetest; publi ...

  8. Using SQLite database in your Windows 10 apps

    MVP可以在channel 9上传视频了,所以准备做个英文视频传上去分享给大家,本文做稿子. Hello everyone, As we all know, SQLite is a great and ...

  9. android 同时打开两个sqlite database db

    1,数据库类 package com.example.testdb; import android.content.Context; import android.database.SQLExcept ...

随机推荐

  1. HBase 介绍

    HBase的列族式存储 列族式存储的概念 HBase Table的组成 Table = RowKey + Family + Column + Timestamp + Value 数据存储模式 (Row ...

  2. Linux中mpstat命令参数详解

    Linux中mpstat命令参数详解 mpstat 是 Multiprocessor Statistics的缩写,是实时系统监控工具.其报告与CPU的一些统计信息,这些信息存放在 /proc/stat ...

  3. 关于jvm系统属性-Djava.awt.headless 模式

    1. 什么是 java.awt.headless? Headless模式是系统的一种配置模式.在系统可能缺少显示设备.键盘或鼠标这些外设的情况下可以使用该模式. 2. 何时使用和headless mo ...

  4. 企业架构 Red Hat Drools KIE Project 三大核心产品

    美团放弃Drools自研规则引擎: https://blog.csdn.net/qq_18603599/article/details/80767912 Drools rule engine虽然好,但 ...

  5. Solidity truffle,部署合约到Ropsten测试链或主链,调用合约(转)

    Solidity truffle,部署合约到Ropsten测试链或主链,调用合约 转 https://blog.csdn.net/houyanhua1/article/details/89010896 ...

  6. echarjs—阿里历年双十一销售数据统计及预测

    阿里双十一数据统计 <!DOCTYPE html> <html> <head> <title>阿里历年双十一销售数据统计及预测</title> ...

  7. 解决IDEA中Lombok生成代码后提示错误的问题

    一.背景介绍 因为我们在使用Lombok的时候,Lombok为我们生成的代码是在字节码中(*.class),而不是在source code中,所以存在IDE提示Lombok生成的方法未定义的错误,导致 ...

  8. 筛选出dataframe中全为数字的列的值

    In [1]: import pandas as pd In [2]: import numpy as np In [3]: students = [ ('jack', 'Apples' , 34) ...

  9. 非LODOP的打印其他问题-简短问答

    该文是一些应用软件,或打印机,即使不使用lodop,也可能会常见的问题.一般和操作系统,电脑硬件打印机硬件等有关. 1.错误-正在打印 怎么解决这个是打印机队列的状态,排查下电脑和打印机的连线是否正常 ...

  10. [LeetCode] 340. Longest Substring with At Most K Distinct Characters 最多有K个不同字符的最长子串

    Given a string, find the length of the longest substring T that contains at most k distinct characte ...