0

WP8、VS12、C#

LINQ to SQL を使用してローカル データベースにリレーショナル データを格納できるアプリの作成を開始しました。

次にやりたいことは、既存のデータを更新できるようにすることです...アプリバーのアイコンをクリックすると、以前に保存したデータに移動して更新できるようになります。

私は msdn... Local database for Windows Phoneを調べました。セクションデータベースの使用 > データの更新に表示される次のコードが、LINQ to SQL のセットアップで有効かどうかを知りたいです。もしそうなら、このコードを追加して更新を許可するにはどうすればよいですか?

    protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
    { 

    //Call base method
    base.OnNavigatedFrom(e);

    //Save changes to the database
    toDoDB.SubmitChanges();
    }

誰かが実際の例を指摘したり、データを更新する機能を接続するのを手伝ってくれたりすると、私は感謝します.

どうもありがとう、

k

4

3 に答える 3

1

こんにちは、あなたがまだプロジェクトに取り組んでいるかどうかわかりませんが、私はあなたのための解決策を持っています.

あなたのサイト(msdn)から、ここで私が見つけたもの:

最初に、更新するオブジェクトをデータベースに照会します。次に、必要に応じてオブジェクトを変更します。最後に、SubmitChanges メソッドを呼び出して、変更をローカル データベースに保存します。

したがって、データベースにクエリを実行する必要があります(私のVB.netコードの例)

Dim monContact = From contact As Authentification In bddGLI.TableAuth Select contact

クエリを実行して結果をコレクションに取得する

Dim resultCollection = New ObservableCollection(Of Authentification)(monContact)

ForEach ループを使用してこのコレクションを実行し、オブジェクトを変更します

For Each elem As Authentification In resultCollection
                elem.Mail = txtEmail.Text
                elem.Nom = txtNom.Text
                elem.Prenom = txtPrenom.Text
            Next

そして、あなたのデータベースを保存することを忘れないでください

bddGLI.SubmitChanges()

では、本当にデータを更新したかどうかを確認する方法は? データベースを作成する場所で、テーブルにデータテストを挿入しました

Using db As New GeoLiveInfoDataContext(GeoLiveInfoDataContext.DBConnectionString)
            If db.DatabaseExists() = False Then
                db.CreateDatabase()
                Dim contact As New Authentification
                With contact
                    .Nom = ""
                    .Prenom = ""
                    .Mail = ""
                End With
                db.TableAuth.InsertOnSubmit(contact)                   
                db.SubmitChanges()
            End If
        End Using

http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh286408(v=vs.105).aspx
C:\Program Files (x86)\Microsoft SDKs\Windows
Phone\v8.0に移動します\Tools\IsolatedStorageExplorerTool
SHIFT + 右クリック => ここでプロンプトを開く
ISETool.exe ts xd {ID APP HERE FROM MANIFEST } {PATH}
エミュレーターまたはデバイスにアプリをインストールすることを忘れないでください (デバッグではありません)。

これでパスに、SQL サーバー Compact Edition で開くことができる .sdf ができました。

アップデート前後にこのコマンドを実行し、違いを確認してください。

于 2014-01-10T10:02:49.003 に答える
1

データベース内のデータを更新する際に重要なことは、データベースからのクエリの結果と同じオブジェクトを処理し、それをコピーしないことです。クエリ結果から他のオブジェクトまたは関数にオブジェクトを渡すことができますが、ヒープ上で同じオブジェクトであることを確認してください。この場合、SubmitChanges が機能します。私はそれを最初に間違って行い、それをページオブジェクトにコピーしてから戻しましたが、SubmitChanges は機能しませんでした。

于 2014-05-13T08:58:43.130 に答える