c# - 如何将 List 对象插入到 sqlite?

标签 c# sqlite xamarin

这是我的类,它帮助我反序列化 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;
        }
    }
}

这是运行截图。

enter image description here

这是我的demo(实现CURD),大家可以引用一下

https://github.com/851265601/MyNewDataBase

关于c# - 如何将 List 对象插入到 sqlite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58586080/

相关文章:

c# - 产生数据注释

java - 调用 Web 服务时无法在客户端找到证书

java - SQLException : No suitable driver found for org. sqlite.JDBC

c# - 保存图像缩略图而不是 MediaStore.ActionImageCapture 中的完整图像

android - 降低 Xamarin.Android + Visual Studio 的调试输出级别

xamarin - 无法在 Xamarin.iOS 上 AOT Microsoft.CSharp.dll 的程序集

c# - 使用反射(Type.GetProperties)获取 DependencyProperties?

c# - wcf rest ierrorhandler webfaultexception

c++ - QSqlError ("' ,"' ,"' ,) 在 QT 小部件应用程序中

SQLite 从基于其他表的表中选择