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
(编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|