vb.net调用存储过程

1.调用存储过程,但无返回值
Private Function SqlProc1(ByVal ProcName As String) As Boolean
    '定义数据链接部分省略, myConn为链接对象 ProcName为存储过程名
      Dim myCommand As New SqlClient.SqlCommand(ProcName, myConn)
       With myCommand
            .CommandType = CommandType.StoredProcedure
            .Parameters.Add("@CodeType", SqlDbType.VarChar, 20).Value = "年级编码"
            Try
                .ExecuteNonQuery()
                Return True
            Catch ex As Exception
                Return False
            End Try   
End Function

2.调用存储过程,返回普通值
Private Function SqlProc1(ByVal ProcName As String) As String
    '定义数据链接部分省略, myConn为链接对象
       Dim myCommand As New SqlClient.SqlCommand(ProcName, myConn)
        With myCommand
            .CommandType = CommandType.StoredProcedure
            .Parameters.Add("@CodeType", SqlDbType.VarChar, 20).Value = "年级编码"
            .Parameters.Add("@NewCode", SqlDbType.VarChar, 20).Direction = ParameterDirection.Output
            Try
                .ExecuteNonQuery()
                Return .Parameters(1).Value()
            Catch ex As Exception
                Return "无编码生成"
            End Try   
End Function

3.调用存储过程,返回数据集
    'VB.NET代码
    Private Function SqlProc2(ByVal ProcName As String, ByVal Param1 As String) As DataSet
        '定义命令对象,并使用储存过程
        Dim myCommand As New SqlClient.SqlCommand
        myCommand.CommandType = CommandType.StoredProcedure
        myCommand.CommandText = ProcName
        myCommand.Connection = myConn
        '定义一个数据适配器,并设置参数
        Dim myDapter As New SqlClient.SqlDataAdapter(myCommand)
        myDapter.SelectCommand.Parameters.Add("@name", SqlDbType.VarChar, 20).Value = Param1
        '定义一个数据集对象,并填充数据集
        Dim myDataSet As New DataSet
        Try
            myDapter.Fill(myDataSet)
        Catch ex As Exception
        End Try
        Return myDataSet
End Function

'存储过程代码
Create Proc Test @name varchar(20) As
Select * From EC_Grade where cGradeName=@name
GO
***如果将存储过程修改部分内容,可以做为查询使用

CREATE Proc Test
@name varchar(200)=''     
--此处应该注意200为查询条件的长度,可以根据实际情况而定;但不建议用于过长的查询条件
As
Declare @sql1 varchar(8000)
if @name<>''
Select @sql1='Select * From EC_Grade where '+ @name
else
Select @sql1='Select * From EC_Grade'
exec(@sql1)
GO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值