如何使用API json数据创建和填充本地SQLite数据库?

如何使用API json数据创建和填充本地SQLite数据库?,sqlite,xamarin.forms,xamarin.android,Sqlite,Xamarin.forms,Xamarin.android,我正在创建一个Xamarin.Forms应用程序,它将使用我在C#中创建的API Rest中的数据 我要做的是将从API返回的所有JSON数据存储到本地SQLiteDB,然后在所有应用程序接口中使用这些数据 直到这里一切都好了: public async void GetProduct() { var httpClient = new HttpClient(); var response = await httpClient.GetStringAsync(

我正在创建一个
Xamarin.Forms
应用程序,它将使用我在C#中创建的API Rest中的数据

我要做的是将从
API
返回的所有
JSON
数据存储到本地
SQLite
DB,然后在所有应用程序接口中使用这些数据

直到这里一切都好了:

public async void GetProduct()
    {
        var httpClient = new HttpClient();
        var response = await httpClient.GetStringAsync("localhost/api/products");
        var product = JsonConvert.DeserializeObject<List<Product>>(response);

        lvProducts.ItemsSource = propriedade;

    }
public异步void GetProduct()
{
var httpClient=新的httpClient();
var response=wait-httpClient.GetStringAsync(“localhost/api/products”);
var product=JsonConvert.DeserializeObject(响应);
lvProducts.ItemsSource=propriedade;
}
我想要的是在本地数据库中填充一个表,而不是填充一个
ListView


你有一些简单的可实现的代码,我可以用来实现这个目标吗?

如果你只想存储数据并显示它(正如你的帖子所暗示的那样),那么你应该使用来完成繁重的工作。它是专门为解决这个问题而设计的

否则,您需要考虑实现本地数据访问并编写自己的数据访问代码。我会让你开始的

我想要的是在本地数据库中填充一个表,而不是填充一个ListView

根据您的描述,您已经使用Api获取了列表,现在您需要创建本地sqlite表并在该表中填充该列表

首先,您需要通过Nuget软件包安装sqlite net pcl

然后使用以下代码创建一个sqlite数据库和产品表:

 public void createtable()
    {
        var fileName = "Productdata.db3";
        var documentPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
        var path = Path.Combine(documentPath, fileName);

        connection = new SQLiteConnection(path);
        connection.CreateTable<Product>();


    }
这是一篇关于在本地sqlite数据库中插入数据的文章,您可以看一下:


您是否阅读了有关使用本地数据库的文档?如果您这样做了,然后解释您不理解的特定部分或从中得到错误,这会有所帮助。Xamarin站点上还有许多关于使用sqlite的示例应用程序。
 private void Btn4_Clicked(object sender, EventArgs e)
    {
        var products = JsonConvert.DeserializeObject<List<Product>>(response);
        foreach(Product p in products)
        {
            Product prod = new Product();
            prod.productname = p.productname;
            var data = connection.Table<Product>();

            var d1 = data.Where(x => x.productname == prod.productname).FirstOrDefault();
            if (d1 == null)
            {
                connection.Insert(prod);
                Console.WriteLine("Sucessfully Added");
            }
            else
            {
                Console.WriteLine("Already Mail id Exist");
            }
        }
    }
public class Product
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }
    public string productname { get; set; }

}