windows phone 8编辑/更新本地数据库

时间:2013-04-03 05:47:27

标签: sql linq windows-phone-8 local-storage

WP8,VS12,& C#

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

我接下来要做的是能够更新现有数据......我会点击appbar中的图标并将其转移到之前保存的数据中,以便我可以更新它。

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

如果有人可以指出一个有效的例子或帮助我更新数据的能力,我将不胜感激。

非常感谢,

ķ

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

Yhello,如果你还在为你的项目工作,那就不知道了,但我已经为你找到了解决方案。

从您的网站(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 +右clic =>打开提示这里
ISETool.exe ts xd {ID APP HERE FROM MANIFEST} {PATH}
不要忘记在模拟器或设备上安装您的应用程序(不是调试)

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

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

答案 2 :(得分:1)

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