ASP.NET 2.0数据教程之六十七:在TableAdapters里创建新的存储过程
我们在以前的教程里已 经详细探讨了创建细节,因此我们这里一笔带过,如果你想知道详细的创建过程 请参阅前面的第1章《Creating a Data Access Laye》在DAL文件夹上右击鼠标选 “添加新项”,选DataSet模板,如图4所示.
图4:新建一个名为NorthwindWithSprocs.xsd的数据集 这样将 会创建一个新的类型化的DataSet,打开设计器,创建一个新的TableAdapter,展 开TableAdapter设置向导.向导的第一步是让我们选择要连接的数据库.在下拉列 表里有一个连接到Northwind数据库的连接字符串,选中它,再点下一步。接下来 的界面让我们选择TableAdapter以哪种方式访问数据库.在以前的教程里我们选择 的是“Use SQL statements”,不过在本文我们选第二项: “Create new stored procedures”,点下一步. 图5:设置TableAdpater创建新的存储过程 接下来,我们要指定 主查询(main query).我们将创建一个存储过程来包含SELECT查询. 使用下 面的SELECT查询:
图6:键入SELECT查询 注意:在名为Northwind的数据集里的 ProductsTableAdapter的主查询与上面本文定义的主查询有所不同。那个 主查询还返回了每个产品的category名称和company名称.不过在后面的文章我们 将对本文的TableAdapter添加这些相关的代码.再点“Advanced Options”按钮.我们可以指定是否让向导为TableAdapter自动生成insert, update和delete statements;是否使用开发式并发操作(optimistic concurrency);是否完成inserts 和 update操作后刷新数据表.在默认情况下,自 动选中“Generate Insert, Update and Delete statements”选项。 另外,本文不用选择“Use optimistic concurrency”项.当选择自动 创建存储过程时,“Refresh the data table”项将被忽略掉.不管是 否选中该项,最终的insert 和update存储过程都会检索刚添加或刚更新(just- inserted or just-updated record)的记录,我们将在第三步看到. 图7:选中“Generate Insert, Update and Delete statements”项 注意:当选中“Use optimistic concurrency”项的时候,向导会在WHERE语句里添加额外的条件,当其它列 的值发生改动的话,将阻止数据更新.关于使用TableAdapter内置的optimistic concurrency功能请参阅第21章《Implementing Optimistic Concurrency》输入 SELECT主查询并选取“Generate Insert, Update and Delete statements”项后,点下一步,接下来的界面,如图8所示,让我们为 selecting, inserting, updating, 和deleting数据的存储过程命名.将这些存储 过程的名字改为Products_Select, Products_Insert, Products_Update, 和 Products_Delete. 图8:为存储过程重命名 向导创建了4个存储过程,点 “Preview SQL Script”按钮,你可以在Preview SQL Script 对话框 里将脚本保存在一个文件里或复制到剪贴板. 图9:预览生成的存储过程 对存储过程重命名后,点下一步,对 TableAdapter相应的方法命名.就像使用SQL statements一样,我们可以创建方法 来填充一个现有的DataTable或返回一个新的DataTable;我们也一个指定 TableAdapter是否采用DB-Direct模式来插入、更新、删除记录.全选这3项,只不 过将Return a DataTable方法重命名为GetProducts,如图10所示: 图10:将方法重命名为Fill 和GetProducts 点Next总览向导将 执行的步骤.点Finish按钮完成设置.一旦向导结束后,将返回DataSet设计器 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |