全国统一服务热线:

客服咨询:

意大利赫兹汽车音响

娱乐赌场网址:VS 2008的TableAdapters and Transactions

来源:未知 作者:侠客 时间:2017-04-15 18:47

V​S​ ​2​0​0​8​的​T​a​b​l​e​A​d​a​p​t​e​r​s​ ​a​n​d​ ​T​r​a​n​s​a​c​t​i​o​n​s​ ​技​巧

暂无评价|0人阅读|0次下载|举报文档

本文讲述Visual Studio 2008的TableAdapters and Transactions中,展示怎样在多层数据表结构的数据集中完成事务内部的分品级更新。在这里给出的例子演示了Visual Studio 2008中怎样用数据库事务或者TransactionScope去更新数据。这需要一些代码来治理行的准确顺序更新TableAdapters上的毗连和处置处罚。在Visual Studio 2008中DataSet天生器有了新的提高,它建设了一个新的类通过只有几行代码自动处置处罚所有这些事情!进入TableAdapterManager。   在这篇文章中,我将要借用以前的应用法式同时把它升级到Visual Studio 2008,要清晰的一点是,不是去升级它的目的框架,由于我希望法式能继续在NET Framework 2.0上运行。Visual Studio 2008 可以通过一个叫做Multi-Targeting的特征去开发支持NET 2.0, 3.0 and 3.5 Frameworks的应用法式。当你在 Visual Studio 2008中打开NorthwindTransaction.sln文件,它将会启动一个升级项目向导,使sln项目文件兼容于Visual Studio 2008. 启动以后,在资源治理器中双击OrdersDataSet 以打开数DataSet Designer。在属性视窗中会看到“分品级的更新” 选择True并保留. 这示意告诉数据集发生器去天生了T 类. 注重每当你建设新的数据集时,默认的就是True。现在,开展OrderForm以打开Windows Form设计器,删除工具箱顶部的Dropdown控件(TransactionToolStripDropDownButton)由于我们现在只要有一个简朴的Save() 要领。右键点击窗体察看代码,在OrdersBindingNavigatorSaveItem的click事务中移掉Case语句,用Me.Save()取代:   Private Sub OrdersBindingNavigatorSaveItem_Click() Handles OrdersBindingNavigatorSaveItem.Click  Me.Validate()  'Commit all data to the OrdersDataSet  Me.OrdersBindingSource.EndEdit()  Me.Order_DetailsBindingSource.EndEdit()  If Not Me.OrdersDataSet.HasErrors Then  If Me.OrdersDataSet.HasChanges Then   If Me.Save() Then  MessageBox.Show("Your changed have been saved.", Me.Text, _  MessageBoxButtons.OK, MessageBoxIcon.Information)  Else  MessageBox.Show("Your changes could not be saved!", Me.Text, _  MessageBoxButtons.OK, MessageBoxIcon.Exclamation)  End If  Else  MessageBox.Show("Please make changes first.", Me.Text, _  MessageBoxButtons.OK, MessageBoxIcon.Exclamation)  End If  Else  MessageBox.Show("Please correct the errors with this data first.", Me.Text, _  MessageBoxButtons.OK, MessageBoxIcon.Exclamation)  End If  End Sub  现在到了很有趣的部门。我们将删除所有的Savexxx()要领而且改写成使用新的TableAdapterManager的简朴的Save()要领。这个代码和以前用的SaveInDatabaseTransaction() 要领的效果是一样的。  '''   ''' Performs an ordered save so that keys are properly updated in  ''' the child table and so that deleted child rows are submitted  ''' to the database first inside a database transaction automatically  ''' VS 2008 generates code that takes care of the saving in the proper  ''' order in a database transaction.  '''   '''   '''   Private Function Save() As Boolean  Dim saved As Boolean = False  If Me.OrdersDataSet.HasChanges Then  Try  Dim manager As New OrdersDataSetTableAdapters.TableAdapterManager  'Back up the dataset so that if the transaction fails, then the entire  ' dataset is restored to it's original state.   manager.BackupDataSetBeforeUpdate = True  manager.Order_DetailsTableAdapter = Me.Order_DetailsTableAdapter  manager.OrdersTableAdapter = Me.OrdersTableAdapter  saved = (manager.UpdateAll(Me.OrdersDataSet) > 0)  Catch ex As Exception  MsgBox(ex.ToString)  End Try  End If  Return saved  End Function  发现没有,现在的代码精练多了。以前我们必须去治理Order的更新,毗连和事务处置处罚,以及回卷的状态。现在所有这些都照顾到了。既然我们不再需要用到它,我们也可以在form中移掉MergeAfterSave要领以及TableAdapter partial 类中的AssignConnection要领。注重,若是我们已经建设了一个新的窗体,那么它就已经为我们建设了TableAdapterManager实例,预置了TableAdapter实例。  运行应用法式选择一个客户的订单,然后在窗体上添加、更新和删除父子行。当我们点击保留按钮,这些行将会被更新和插入到parent-child order中,而在child-parent order中删除,所有的这些都在数据库事务内部完成。一旦你打开SQL ,我们可以看到:你也可以通过设置UpdateOrder属性来指示TableAdapterManager你想先处置处罚更新历程。更多信息请审查TableAdapterManager文档。   TableAdapterManager为我们省去了许多代码,可是你仍需要确认你已经完全地设置好你的数据集行止置处罚foreign-key约束,就像我在这片文章中提到的,在TableAdapters里按特定的顺序挪用Fill要领。更多详细信息请阅读这篇文章,关于在你的数据集中使用foreign-key约束,这样能够通过TableAdapterManager完全更新。我已经附上更新好的法式了。 体验新版博客 上一篇:vs2008 vb.net 打包 下一篇:vs2008 使用LINQ来简化编程的7个技巧分享 |谈论 (0) |阅读 (16)|牢靠链接 |揭晓于 08:43 提醒:“牢靠链接”为您显示此篇文章的牢靠稳固链接,若是您有尚有疑问请点击资助链接地址:http://hanchun2009.blog.sohu.com/.html 复制此地址谈论想第一时间抢沙发么?由于最近广告泛滥,暂只允许登任命户对此文谈论。登录深圳海上皇宫合体 财政危急引爆法国大革命·国人误读"全球仇富榜"·从猪蹄厅长谈职业精神·老人居心抢劫为坐牢养老·看看无瑕疵完善搭配是怎样的·6大秘笈成就床上能手 把简朴着装穿出强盛气场·芦芳生:受人一定的好男子 张定涵:仙人姐姐玩穿越资助 - 客服中央 - 在线客服 - 意见建议 - 举报 - 搜狐博客 - 搜狐首页 | 举报不良信息 Copyright ? 2012 Sohu.com Inc. All rights reserved. 搜狐公司 版权所有

今日推荐

50份文档

打造专属自己的淘宝旺铺

淘宝提升转化率窍门

淘宝刷信誉互刷注重事项

淘宝客推广操作基础

份文档

教学总结精品范文

小学五年级英语教学事情总结

大学西席小我私人事情总结

小学英语教学教研事情总结

104份文档

2014年驾照交规

2014年1月1日起“驾照新规”出炉

科目三现实蹊径驾驶考试注重事项

驾考新题争先版

【责任编辑:乐博娱乐
售前咨询
  • 点这里给乐博娱乐发消息
售后服务
  • 点这里给乐博娱乐发消息