SQLite c# : 如何在 sqlite BLOB 数据类型中保存和检索自定义对象
本文关键字:保存 检索 对象 自定义 数据类型 BLOB sqlite SQLite | 更新日期: 2023-09-27 18:32:28
有一个自定义对象(前公司)和自定义对象列表(前员工)需要保存在 BLOB 数据类型中,下面是我尝试过的一段代码,但没有成功。我已经尝试过DbType.Binary
但没有成功。
下面是插入查询
:
sql_cmd.Parameters.Add("@company", DbType.Byte);
sql_cmd.Parameters["@company"].Value = (Company)root.company;
sql_cmd.Parameters.Add("@employees", DbType.Byte);
sql_cmd.Parameters["@employees"].Value = ((List< Employee >))root.employeeList;
例外:
System.FormatException was unhandled by user code.
Message=Input string was not in a correct format.
以下是关联的类
class Company
{
public string id { get; set; }
public string name { get; set; }
public List<Package> packages { get; set; }
public string description { get; set; }
}
class Employee
{
public string id { get; set; }
public string name { get; set; }
public object description { get; set; }
public Address address { get; set; }
public Contact contact { get; set; }
public string enterpriseId { get; set; }
public object createdDate { get; set; }
public object modifiedDate { get; set; }
}
如果您使用的是 Sqlite.net-PCL,则可以存储整个对象。但不是 blob 类型。此外,还必须为"包"对象提供一个单独的表。可以将公司 ID 属性添加到包对象,以便轻松找到项目。此外,它还具有更干净的语法。
db.CreateTable<Company>();
db.CreateTable<package>();
db.InsertAll(AlistOfCompanies);