首页 > 开发 > .Net > 正文

在.net中调用存储过程的另一种方法

2020-02-03 16:01:55
字体:
来源:转载
供稿:网友
[存储过程] 
create procedure test_procedure @cid int ,@y int, @n varchar(10) output 
as 
select * from city where [email protected] 
if @y=1 
begin 
  set @n = '成功!' 
  return 0 
end 
else 
begin 
  set @n = '失败!' 
  return -1 
end 
go 
[程序中调用存储过程]  

private sub form1_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load 
        dim conn as oledbconnection 
        try 
            conn = new oledbconnection("provider=sqloledb;data source=localhost;user id=sa;password=;initial catalog=jiang") 
            dim cmd as new oledbcommand(" {? = call test_procedure(?,?,?)}", conn) 
            conn.open() 
            with cmd 
                .commandtype = commandtype.text ‘这句可以省略,因为是默认设置,但这里还是显式地写出以引起注意 
                .parameters.add("@retval", oledbtype.integer) 
                .parameters.add("@cid", oledbtype.integer) 
                .parameters.add("@y", oledbtype.integer) 
                .parameters.add("@n", oledbtype.varchar, 10) 
                .parameters("@n").direction = parameterdirection.output 
                .parameters("@retval").direction = parameterdirection.returnvalue 

                .parameters("@cid").value = 1 
                .parameters("@y").value = 1 
                .executenonquery() 
                messagebox.show(.parameters("@n").value) ‘测试结果为“成功!” 

            end with 
        catch ex as exception 
            messagebox.show(ex.tostring) 
       finally 
            conn.close() 
        end try 
    end sub
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表