C# 如何使用Xamarin表单中的SQLite更新数据库中的项

C# 如何使用Xamarin表单中的SQLite更新数据库中的项,c#,.net,sqlite,xamarin.forms,sqlite-net,C#,.net,Sqlite,Xamarin.forms,Sqlite Net,我正在尝试更新应用程序上的用户信息 我可以在我的数据库中添加一个用户,但当我试图更新其信息时,它不起作用 以下是更改信息的功能: public void ChangerLanguageValue(string language) { var myuser = userinfodatabase.GetUsers(); myuser.NewsLanguage = language; userinfodatabase.UpdateUserInfos(myus

我正在尝试更新应用程序上的用户信息

我可以在我的数据库中添加一个用户,但当我试图更新其信息时,它不起作用

以下是更改信息的功能:

 public void ChangerLanguageValue(string language)
 {
     var myuser = userinfodatabase.GetUsers();
     myuser.NewsLanguage = language;     
     userinfodatabase.UpdateUserInfos(myuser); // this does not work
 }
以下是我的数据库配置:

class UserInfosDatabase
{
    private SQLiteConnection conn;

    public UserInfosDatabase()
    {
        conn = DependencyService.Get<ISQLite>().GetConnection();
        conn.CreateTable<MyUser>();
    }

    public string AddUser(MyUser localuser)
    {
        conn.Insert(localuser);
        return "success";
    }

    public MyUser GetUsers()
    {
        var users = (from u in conn.Table<MyUser>() select u);
        return users.ToList().FirstOrDefault();
    }

    //Update
    public string UpdateUserInfos(MyUser localuser)
    {
        conn.Update(localuser);
        return "succes";
    }

}
class用户信息数据库
{
专用连接连接;
公共用户infosdatabase()
{
conn=DependencyService.Get().GetConnection();
conn.CreateTable();
}
公共字符串AddUser(MyUser localuser)
{
conn.Insert(本地用户);
返回“成功”;
}
公共MyUser GetUsers()
{
var users=(从conn.Table()中的u选择u);
返回users.ToList().FirstOrDefault();
}
//更新
公共字符串updateUserInfo(MyUser localuser)
{
conn.Update(本地用户);
返回“成功”;
}
}

对于Xamarin.Forms中的SQLite,我们可以使用插件

它有非常简单的方法来安全地执行CRUD操作和查询(使用参数),并以强类型方式检索这些查询的结果

在您的情况下,最好将数据更新为
async

public Task <string>UpdateUserInfos(MyUser localuser) 
{ 
   conn.UpdateAsync(localuser); 
   return "success"; 
}
公共任务更新服务信息(MyUser localuser) { conn.UpdateAsync(本地用户); 返回“成功”; }
对于Xamarin.Forms中的SQLite,我们可以使用插件

它有非常简单的方法来安全地执行CRUD操作和查询(使用参数),并以强类型方式检索这些查询的结果

在您的情况下,最好将数据更新为
async

public Task <string>UpdateUserInfos(MyUser localuser) 
{ 
   conn.UpdateAsync(localuser); 
   return "success"; 
}
公共任务更新服务信息(MyUser localuser) { conn.UpdateAsync(本地用户); 返回“成功”; }
您可以将该方法更改为任务
公共任务updateUserInfo(MyUser localuser){conn.UpdateAsync(localuser);返回“success”;}
@LucasZhang MSFT我没有UpdateAsynchCheck我会将其作为答案发布,你能接受吗?这将帮助更多的人:)@LucasZhang MSFT是的,当然很高兴!您可以将此方法更改为任务
公共任务updateUserInfo(MyUser localuser){conn.UpdateAsync(localuser);返回“success”}
@LucasZhang MSFT我没有更新同步检查我会将其作为答案发布,您能接受吗?这将帮助更多人:)@LucasZhang MSFT当然乐意!