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