【问题标题】:How to update an item in database with SQLite in Xamarin forms如何在 Xamarin 表单中使用 SQLite 更新数据库中的项目
【发布时间】:2020-04-19 23:43:33
【问题描述】:

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

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

这是改变信息的功能:

 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";
    }

}

【问题讨论】:

  • 您可以将方法更改为任务public Task &lt;string&gt;UpdateUserInfos(MyUser localuser) { conn.UpdateAsync(localuser); return "success"; }
  • @LucasZhang-MSFT 我没有 UpdateAsynch
  • 我会把它作为答案发布,你能接受吗?这将帮助更多的人:)
  • @LucasZhang-MSFT 是的,当然很高兴!

标签: c# .net sqlite xamarin.forms sqlite-net


【解决方案1】:

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

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

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

public Task <string>UpdateUserInfos(MyUser localuser) 
{ 
   conn.UpdateAsync(localuser); 
   return "success"; 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 2012-05-28
    • 2020-07-19
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多