2015-11-04 8 views
8

IDがRowの場合、他の値を更新します。Windows 10のC#でsqlite.net pclの行を更新するには?

私の値を更新する方法がわかりません! マイ表:

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>(); 
    } 
+1

この記事を参考にしてくださいhttp://blog.tpcware.com/2014/05/universal-app-with-sqlite-part-2/ Universalアプリには言いますが、Windows 10アプリでも動作すると思います。 – Janak

答えて

7

を私は最近、UWPアプリで作業を開始し、また、この問題に出くわしました。だから、UWPでSQLiteを使って行を更新する方法は?ここに行く!

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

App.DB_PATHは、 'path'変数と同じです。この回答にはさまざまな興味のある分野があることを認識しています。さらなる質問がある場合は、お気軽にお問い合わせください。

2

のみ行の値の特定のセットを更新するには、その後、生のSQLクエリを実行すると単純に次のようになります。

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

はこれがクリーニングされたあなたは実行ステートメントに渡している入力を前提としています。

+0

すぐにこれをviewmodelオブジェクトに更新する必要がありますか?あらゆる最善の方法? –

関連する問題