这是我的类,它帮助我反序列化 json 从 api 获取结果
public class STOCKS
{
public class RootObject
{
[PrimaryKey]
public int sto_RECno { get; set; }
public int sto_RECid_RECno { get; set;
}
}
这是我的 json 反序列化操作。
var content = await _client.GetStringAsync("http://webapi/somewhere/");
var StockLIST= JsonConvert.DeserializeObject<List<STOCKS.RootObject>>(content);
我想将这些数据插入到我的 sqlite 中
conn = DependencyService.Get<ISQLite>().GetConnection();
conn.CreateTable<STOCKS.RootObject>();
conn.Insert(StockLIST);
但它失败了。
我不明白,我哪里错了。? 我的 Stocks 类包含近 90 个变量。所以我正在寻找合适的解决方案。
我应该将列表转换为数据表还是什么?
谢谢你的帮助。
最佳答案
首先,您可以使用以下方式将您的对象插入到数据库中。
List<Note> StockLIST = new List<Note>();
StockLIST.Add(new Note() {Text="bbbb",Gender="fame",Date= DateTime.UtcNow });
StockLIST.Add(new Note() { Text = "bbbb1", Gender = "fame", Date = DateTime.UtcNow });
StockLIST.Add(new Note() { Text = "bbbb2", Gender = "fame", Date = DateTime.UtcNow });
StockLIST.Add(new Note() { Text = "bbbb3", Gender = "fame", Date = DateTime.UtcNow });
foreach (var item in StockLIST)
{
await App.Database.SaveNoteAsync(item);
}
将数据插入数据库时,您应该使用async/await
。这是实现 SaveNoteAsync
public Task<int> SaveNoteAsync(Note note)
{
if (note.ID != 0)
{
return _database.UpdateAsync(note);
}
else
{
return _database.InsertAsync(note);
}
}
当我们在xamarin中进行sqlite时,我们会先连接到App.xaml中的数据库。
public partial class App : Application
{
static NoteDatabase database;
public static NoteDatabase Database
{
get
{
if (database == null)
{
database = new NoteDatabase(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Notes5.db3"));
}
return database;
}
}
}
这是运行截图。
这是我的demo(实现CURD),大家可以引用一下
关于c# - 如何将 List 对象插入到 sqlite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58586080/