0

WP8、VS12 和 C#

我已经开始创建一个应用程序,它允许我使用 LINQ to SQL 将关系数据存储在本地数据库中。

我接下来想做的是能够更新现有数据...我将单击应用栏中的图标并转到以前保存的数据,以便我可以更新它。

我查看了 msdn... 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();
    }

如果有人能指出一个工作示例或帮助我连接更新数据的能力,我将不胜感激。

非常感谢,

ķ

4

3 回答 3

1

使用 Sqlight -- 这是一个很好的例子http://code.msdn.microsoft.com/wpapps/Using-Sqlite-with-WP8-52c3c671

于 2013-07-31T18:59:34.310 回答
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 + right clic => 在此处打开提示
ISETool.exe ts xd {ID APP HERE FROM MANIFEST } {PATH}
不要忘记在模拟器或设备上安装您的应用程序(不是调试)

现在在您的路径中,您有一个可以使用 SQL Server Compact Edition 打开的 .sdf。

在更新前后执行此命令并检查差异。

于 2014-01-10T10:02:49.003 回答
1

更新数据库中的数据的重要一点是,您使用相同的对象处理从数据库中产生查询并且不要复制它。您可以将查询结果中的对象传递给其他对象或函数,但要确保它仍然是堆上的同一个对象。就在这种情况下,SubmitChanges 有效。我第一次做错了,为页面对象复制了它,然后把它传回去,SubmitChanges 不起作用。

于 2014-05-13T08:58:43.130 回答