asp.net中数据链路层的创建(9)
来源:互联网 发布:编程笔记本推荐2017 编辑:程序博客网 时间:2024/06/05 13:29
创建自定义的插入,更新,删除方法
用DB直接法生成的Insert()
, Update()
,和Delete()
方法有时 候会感觉有点不方便,特别是当数据表有许多字段的时候。看一下前面这个编码例子,没有IntelliSense的帮 助的话,不是很清楚Products
表的哪个字段对 应Update()
和Insert()
方法中的哪个输入参数。有时候我们只要更新一到二个字 段或者需要一个自定义的Insert()
方法,这个方法需要返回刚插入的记录 的IDENTITY
(自增)的字段值。
要创建这样的自定义方法,回到DataSet设计器。在TableAdapter上按右鼠标,选择“添加查询”,然后回 到TableAdapter配置向导。在第二屏上,我们可以指明要生成的查询的类型。让我们生成一个添加新 的product(产品)记录,然后返回新添加记录的ProductID
值的方法。因此,选择生成一个插 入(INSERT
)型查询。
图25: 创建一个给Products
表添加新记录的方法
下一个屏显示InsertCommand
的CommandText
属性。在查询语句后面,增添一 个SELECT SCOPE_IDENTITY()
的查询,这查询将返回当前同一个操作范围内插 入IDENTITY
字段的最后那个identity 值。(详见技术文档中关 于SCOPE_IDENTITY()
的内容以及为什么你应该http://weblogs.sqlteam.com/travisl/archive/2003/10/29/405.aspx)。确认在添加SELECT
语句前,你在INSERT
语句后面添一个分号 。
图26: 增添查询返回SCOPE_IDENTITY()
值
最后,把这个新方法命名为InsertProduct
。
图 27:放方法名字设成InsertProduct
当你返回DataSet设计器时,你将看到ProductsTableAdapter
多了一个新的方 法,InsertProduct
。如果对应Products
表的每个字段,这个新的方法没有对应的参数的话,非常可能的原因是,你忘了给INSERT
语句的结尾添加一个分号(semi-colon)。重新配 置InsertProduct
方法,确认在INSERT
和SELECT
语句间有个分号。
在默认情形下,插入方法调用的是非查询(non-query)方法,意即,他们只返回受影响的记录数。但是,我们想要让InsertProduct
方法返回一个查询返回的值,而不是受影响的记录数。这可以把InsertProduct
方法的ExecuteMode
属性改 成Scalar
(标量)来实现。
图 28:把ExecuteMode
属性改成Scalar
下面的编码示范如何使用这个新的InsertProduct
方法:
1
2
3
4
5
6
7
NorthwindTableAdapters.ProductsTableAdapter
productsAdapter = new
NorthwindTableAdapters.ProductsTableAdapter();
// Add a new product
int new_productID =
Convert.ToInt32(productsAdapter.InsertProduct("New
Product", 1, 1, "12 tins per carton",
14.95m, 10, 0, 10, false));
// On second thought, delete the product
productsAdapter.Delete(new_productID);
- asp.net中数据链路层的创建(9)
- asp.net中数据链路层的创建(5)
- asp.net中数据链路层的创建(1)
- asp.net中数据链路层的创建(2)
- asp.net中数据链路层的创建(3)
- asp.net中数据链路层的创建(4)
- asp.net中数据链路层的创建(6)
- asp.net中数据链路层的创建(7)
- asp.net中数据链路层的创建(8)
- asp.net中数据链路层的创建(10)
- asp.net中数据链路层的创建(11)
- asp.net中数据链路层的创建(12)
- asp.net中数据链路层的创建(13)
- 数据链路层的协议
- 数据链路层的主要功能
- 数据链路层的数据传输
- 数据链路层的功能
- 数据链路层的功能
- 出现could not find java 2 Runtime Environment错误的处理
- asp.net中数据链路层的创建(7)
- 2009-03-26 菜鸟寻“食”
- asp.net中数据链路层的创建(8)
- javaJDK 将int 转成32位的string
- asp.net中数据链路层的创建(9)
- ubuntu 实践
- Linux中的用户ID和有效用户ID的区别
- Ajax基本教程
- asp.net中数据链路层的创建(10)
- 限制软件在一台电脑上运行
- 系统程序员成长计划-动态数组(三)
- kindeditor之上传图片不显示的问题
- SICP 2nd Done, roughly