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();
}
如果有人可以指出一个有效的例子或帮助我更新数据的能力,我将不胜感激。
非常感谢,
ķ
答案 0 :(得分:1)
使用Sqlite - 这是一个很好的例子http://code.msdn.microsoft.com/wpapps/Using-Sqlite-with-WP8-52c3c671
答案 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不起作用。