Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用C语言更新SQLite数据库_C#_.net_Xamarin_Xamarin.forms - Fatal编程技术网

C# 用C语言更新SQLite数据库

C# 用C语言更新SQLite数据库,c#,.net,xamarin,xamarin.forms,C#,.net,Xamarin,Xamarin.forms,在我的Xamarin应用程序中,有一个从数据库获取银行列表的选择器,该DB通过API获取银行详细信息 一切正常,但现在,我想更新数据库,如果在API中添加了新的银行,我想将它们添加到现有数据库中 我写了这段小代码,但问题是,它首先从数据库中输出所有现有记录,然后打印新记录,是记录总数的许多倍,例如,如果有十条记录,它会将每条记录打印十次 ViewModel.cs 从API获取数据的代码 我不知道你的数据,但你有太多的foreach循环,你正在检查每个循环中的整个集合。因此,您的条件可能会捕获每个

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

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

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

ViewModel.cs

从API获取数据的代码


我不知道你的数据,但你有太多的foreach循环,你正在检查每个循环中的整个集合。因此,您的条件可能会捕获每个循环中的每个帐户。

我不知道您的数据,但是您有太多的foreach循环,并且您正在检查每个循环中的整个集合。因此,您的条件可能会捕获每个循环中的每个帐户。

此语句必须在现有数据库中添加新记录。getBanks中的每个var记录。其中c=>c.Name!=i、 别名.名称。。但问题是你将如何做到这一点?或者正确的方法是什么?不,你检查每个循环中的每个别名。。。还有一个=b a=c a=a所以,我认为这就是问题所在。很抱歉,我不知道如何实现,然后你必须澄清你的问题,并提供关于你的数据的额外和详细信息。我发布了一个数据格式,我正在通过api获取。。请看一看:好吧,我在摆弄你的东西,你用的是obj,我不知道那是什么:我想那是未注册银行的集合。因此,在添加该银行之前,您可以检查该银行是否是updateBanks对象的一部分,并且只有在没有Entry时才添加。我发布了上面用于从api获取数据的代码。此语句必须在现有数据库中添加新记录getBanks中的每个var记录。其中c=>c.Name!=i、 别名.名称。。但问题是你将如何做到这一点?或者正确的方法是什么?不,你检查每个循环中的每个别名。。。还有一个=b a=c a=a所以,我认为这就是问题所在。很抱歉,我不知道如何实现,然后你必须澄清你的问题,并提供关于你的数据的额外和详细信息。我发布了一个数据格式,我正在通过api获取。。请看一看:好吧,我在摆弄你的东西,你用的是obj,我不知道那是什么:我想那是未注册银行的集合。因此,在添加该银行之前,您可以检查该银行是否是updateBanks对象的一部分,并且仅在没有条目时添加。我发布了上面用于从api获取数据的代码。。
// 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" });
     }
}
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; }
}
{
    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"
        },
    ]
}
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);
// 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" });
     }
}