Как обновить строку в sqlite.net pcl в windows 10 C#?

У меня есть ID строки, тогда я обновлю другие значения.

Я не знаю, как обновить свои ценности! Мой Стол:

 class MyTable
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }
    public string Date { get; set; }
    public string Volumes { get; set; }
    public string Price { get; set; }
}

прочая информация:

 string path;
    SQLite.Net.SQLiteConnection conn;

    public updatepage()
    {
        this.InitializeComponent();
        path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "ccdb.sqlite");

        conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);

        conn.CreateTable<MyTable>();
    }

2 ответов


недавно я начал работать с приложениями UWP, а также столкнулся с этой проблемой. Итак, как обновить строку с помощью SQLite в UWP вы спрашиваете? Держи!

using (var dbConn = new SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), App.DB_PATH))
    {
        var existingUser = dbConn.Query<User>("select * from User where Id = ?", user.Id).FirstOrDefault();
        if (existingUser != null)
        {
            existingUser.Name = user.Name;
            existingUser.Email = user.Email;
            existingUser.Username = user.Username;
            existingUser.Surname = user.Surname;
            existingUser.EmployeeNumber = user.EmployeeNumber;
            existingUser.Password = user.Password;
            dbConn.RunInTransaction(() =>
            {
                dbConn.Update(existingUser);
            });
        }
    }

Приложение.DB_PATH совпадает с переменной 'PATH'. Я понимаю, что в этом ответе есть много разных областей, поэтому, если у вас есть еще какие-либо вопросы, не стесняйтесь задавать.


чтобы обновить только определенный набор значений в строке, тогда выполнение необработанного SQL-запроса было бы проще:

conn.Execute("UPDATE MyTable SET Price = ? Where Id = ?", 1000000, 2);

предполагается, что входные данные, передаваемые оператору execute, были очищены.