| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1550 人关注过本帖
标题:vb.net 如何调用存储过程[转贴]
只看楼主 加入收藏
zhangwei
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2005-5-3
收藏
 问题点数:0 回复次数:3 
vb.net 如何调用存储过程[转贴]

vb.net 如何调用存储过程

有个存储过程,查询并生成单据号(字符串)
如何调用这个存储过程并取得这个单据号


调用存储过程
我们已经知道如何使用 DataAdapter 来调用 Command 对象,或者如何使用 SQL 语句直接与数据库进行交互。Command 对象还可用于调用存储过程,这通常是数据库交互的首选方法,因为与动态 SQL 语句相比,存储过程通常能够提供更好的性能。
假设 Pubs 数据库包括一个检索作者数据的存储过程:
CREATE PROCEDURE getAuthors
AS
SELECT au_id,au_fname,au_lname
FROM authors
RETURN
我们可以更改 btnCopyToFile 的代码,以使用此存储过程而不是动态 SQL 语句。代码如下所示:
cm.Connection = cn
cm.CommandType = CommandType.StoredProcedure
cm.CommandText = "getAuthors"
CommandType 属性被更改为调用存储过程;CommandText 属性提供了存储过程的名称,而不是 SQL 语句本身。
可以使用存储过程来处理更新,例如:
CREATE PROCEDURE updateAuthor
(
@id varchar(11),
@fname varchar(20),
@lname varchar(40)
)
AS
UPDATE authors
SET au_fname=@fname,
au_lname=@lname
WHERE au_id=@id
RETURN
在本示例中,可以更改 btnFileToDb 的代码以使用存储过程:
cm.Connection = cn
cm.CommandType = CommandType.StoredProcedure
cm.CommandText = "updateAuthor"
这一更改非常容易,因为我们已经在 SQL 语句中使用了参数,代码已经被编写为向 Command 对象提供必要的参数值。
使用存储过程的另一种可能是,我们使用一个包含从存储过程返回的值的输出参数。在这种情况下,我们需要更改参数的配置,以指定相应的 Direction 属性值:
cm.Parameters.Add("@id", SqlDbType.Int)
cm.Parameters("@id").Direction = ParameterDirection.Output
如果存储过程返回一个自动生成的数字 id 值,该参数配置就是适当的。

cmdSQL = New SqlCommand
cmdSQL.CommandType = CommandType.StoredProcedure
cmdSQL.CommandText = "LP_GetNewBuyInCode"
知道是这样调用了,关键是怎么取出单据号并放在一个字符串变量里啊 ?


在存储过程里写就是了,用一个返回参数。或者使用一个临时表,然后把组合后的字符串插入,最后返回临时表的该字段。

搜索更多相关主题的帖子: 数据库 字符串 style 
2005-11-28 21:17
wangfuli
Rank: 4
等 级:贵宾
威 望:12
帖 子:206
专家分:10
注 册:2005-11-11
收藏
得分:0 
我想问一个很弱的问题了,就是用这样个存储的程序是把一个东西存到数据库中,到底有什么样的变化了,就是说数据库和以前的有什么不同,我曾经做了一个,感觉也没什么用了,但是这样的存储是蔑一本vb.net书中必讲的了,很重要了,我就是想知道,究竟这样的存储有什么样的表现了
谢谢!

2005-11-28 21:33
zhangwei
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2005-5-3
收藏
得分:0 

使用存储过程有很多好处:
1.执行速度快
2.模块化的程序设计(这点最重要了)
3.减少网络通信量
4.保证系统的安全性
你先,试试看.....当你想执行一堆SQL语名的时候就知道它的好处了!


主动沟通......
2005-11-28 22:06
linguishan
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-12-8
收藏
得分:0 

说的没有错,

2005-12-08 09:25
快速回复:vb.net 如何调用存储过程[转贴]
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016131 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved