在C#中更新SQLite数据库

斯塔夫罗金

在我的Xamarin应用程序中,有一个选择器选择器从数据库获取银行列表,而该数据库通过API获取银行详细信息。

一切正常,但是现在,我想更新数据库,如果新的银行添加到API中,我想将它们添加到现有数据库中。

我写了这个小代码,但是问题是,它首先从数据库中输出所有现有记录,然后打印新记录,是记录总数的很多倍,例如(如果有十条记录,它将每条记录打印十条记录)次)。

ViewModel.cs

// Load all Banks into a List
var getBanks = await App.Database.GetBankAsync();

// Update the Bank Details where new Banks doesn't exist in the Database
List<Bank> updateBanks = new List<Bank>();

foreach (Banks i in obj.banks)
{
    foreach (var record in getBanks.Where(c => c.Name != i.alias.name))
    {
        updateBanks.Add(new Bank { Name = i.alias.name, Status = "Not Registered" });
    }
}

foreach (var bank in updateBanks)
{
    await App.Database.SaveBankAsync(bank);
}

// Load all Banks into a List
var getBanksUpdated = await App.Database.GetBankAsync();

// Load the Banks whose Status is "Not Registered"
foreach (var record in getBanks.Where(c => c.Status == "Not Registered")
{
    _bankList.Add(record);
}
public class Alias
{
public string name { get; set; }
}

public class Banks
{
public Alias alias { get; set; }
public string id { get; set; }
}

public class RootObject
{
public List<Banks> banks { get; set; }
}

通过API获取数据

{
    success: true,
    banks: [
        {
        alias: {
        name: "Bank 1",
        Address: "Earth"
        },
        endpoint: {
        uri: "http://127.0.0.1:0000"
        },
        state: "Registered",
        createdAtUtc: "2021-01-19T13:55:12.2318662",
        updatedAtUtc: "2021-01-19T13:55:14.9944042"
        },
    ]
}

从API获取数据的代码

HttpClient httpClient = new HttpClient(new NativeMessageHandler());
Uri getDataBanks = new Uri(string.Format("http://127.0.0.1:0000/Banks"));

HttpResponseMessage restponseBanks = await httpClient.GetAsync(getDataBanks);
string contentBanks = await restponseBanks.Content.ReadAsStringAsync();
RootObject obj = JsonConvert.DeserializeObject<RootObject>(contentBanks);
r226号
// get the names of all existing banks
List<string> names= obj.banks.Select(u => u.Name).ToList();

// get the names of all banks taken from the API
List<string> names_new= getBanks.Select(u => u.Name).ToList();

foreach (var record in names_new)
{
//check if the bank is exists or not
     if(! names.contains(record)
     {
        updateBanks.Add(new Bank { Name = record.alias.name, Status = "Not Registered" });
     }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQLite 数据库在更新后被 C# 锁定?

来自分类Dev

SQLite数据库.Net C#中的压缩

来自分类Dev

在C#中从DataGridView更新数据库表

来自分类Dev

C#访问texbox中的数据库更新

来自分类Dev

更新C#中的数据库字段SQL

来自分类Dev

更新数据库访问,C#

来自分类Dev

更新SQLite数据库

来自分类Dev

如何使用AND条件更新SQLite数据库中的数据?

来自分类Dev

在iOS中写入/更新数据SQLite数据库

来自分类Dev

在Android sqlite数据库中更新单个数据

来自分类Dev

使用C#将数据插入SQLite数据库

来自分类Dev

在Android中删除或更新SQLite数据库中的条目

来自分类Dev

在C#中的数据库中添加新字段时更新数据集

来自分类Dev

在C#中的数据库中添加新字段时更新数据集

来自分类Dev

在C ++应用程序中存储,跟踪和更新SQLite数据库版本

来自分类Dev

使用Python更新SQLite数据库中的行

来自分类Dev

尝试在android sqlite中更新数据库时出错

来自分类Dev

如何在SQLite数据库中更新值?

来自分类Dev

在sqlite数据库中更新或转换日期时间值

来自分类Dev

更新sqlite数据库中的特定行值

来自分类Dev

无法更新sqlite数据库中的记录

来自分类Dev

尝试在android sqlite中更新数据库时出错

来自分类Dev

如何更新我的sqlite数据库中的值?

来自分类Dev

如何在android sqlite中更新数据库表?

来自分类Dev

尝试在Android中更新sqlite数据库时出错

来自分类Dev

如何更新存储在 SQLite 数据库中的对象

来自分类Dev

C# 数据库未使用数据集更新

来自分类Dev

如何在SQLite中检查数据库是否存在C#

来自分类Dev

试图统一插入C#中的SQLite数据库

Related 相关文章

热门标签

归档