Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.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
C# 用C语言中JSON(或其他易于阅读的文本格式)的数据填充现有SQLite数据库#_C#_Json_Database_Sqlite - Fatal编程技术网

C# 用C语言中JSON(或其他易于阅读的文本格式)的数据填充现有SQLite数据库#

C# 用C语言中JSON(或其他易于阅读的文本格式)的数据填充现有SQLite数据库#,c#,json,database,sqlite,C#,Json,Database,Sqlite,我的数据库分为两部分:独立于语言的部分和可本地化的部分(包含Unicode文本字符串)。对于我们的翻译人员来说,使用诸如JSON之类的文本格式(当然是通过某种工具),而不是使用某些DB查看工具,工作起来要容易得多。因此,我正在寻找将JSON数据加载到SQLite数据库中的最佳方法。现在,我使用愚弄的方法(假设我已经有空的SQLite数据库): 我将JSON数据反序列化到C#类中(通过Newtonsoft.JSON.dll) 对于每一个参数,我都手动创建带有参数的插入命令(通过System.Dat

我的数据库分为两部分:独立于语言的部分和可本地化的部分(包含Unicode文本字符串)。对于我们的翻译人员来说,使用诸如JSON之类的文本格式(当然是通过某种工具),而不是使用某些DB查看工具,工作起来要容易得多。因此,我正在寻找将JSON数据加载到SQLite数据库中的最佳方法。现在,我使用愚弄的方法(假设我已经有空的SQLite数据库):

  • 我将JSON数据反序列化到C#类中(通过Newtonsoft.JSON.dll)
  • 对于每一个参数,我都手动创建带有参数的插入命令(通过System.Data.SQLite.dll),然后用类字段的值填充该参数
  • 我执行那个命令
  • 用JSON数据填充SQLite数据库的方法正确(最简单、可靠)吗?也许我错过了一些有用的API


    欢迎使用任何其他易于阅读的文本格式(支持Unicode!),它在C#和SQLite方面更适合使用。

    尝试SQLite.NET,这是一个基本的SQLite客户端和ORM:

    从他们的维基:

    定义实体后,可以自动生成 通过调用CreateTable在数据库中创建表:

    var db = new SQLiteConnection("foofoo");
    db.CreateTable<Stock>();
    db.CreateTable<Valuation>();
    
    更新和删除也有类似的方法

    你会得到这样的结果:

    AddStock(string jsonString){
        var stock = JsonConvert.DeserializeObject<Stock>(jsonString);
        db.Insert(stock);
    }
    
    AddStock(字符串jsonString){
    var stock=JsonConvert.DeserializeObject(jsonString);
    db.插入(库存);
    }
    
    Thx。我已经在使用好的SQLite客户端和ORM(来自Devart)。工具不是我问题的核心。我在问我是否遗漏了一些JSON自动加载API,我看到了更好的Unicode tex格式。我主要是回应你方法中的第二步。其余的对我来说似乎很好,你想改进什么?某种“神奇的函数”FillAQLiteDBWithData(SQLiteDBConnection,JSONString)可能我不知道有任何这样的神奇:)但对我来说,反序列化到对象中,并使用ORM存储这些对象,而不需要手动创建insert语句,已经相当简洁易读了。你不觉得吗?我添加了一个例子,你是在寻找这个,还是想将JSON字符串保存到db中?CSV要简单得多,事实上SQLite可以直接导入CSV文件。它甚至可以像读取SQLite数据库一样读取CSV文件
    AddStock(string jsonString){
        var stock = JsonConvert.DeserializeObject<Stock>(jsonString);
        db.Insert(stock);
    }