VB.NET下调用SQL Server存储过程的方法

定义数据链接部分省略 , myConn 为链接对象 ProcName 为存储过程名
 
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
 
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值