您好,登錄后才能下訂單哦!
VB.NET調用SQL Server的存儲過程,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
VB.NET編程語言對于數(shù)據(jù)庫的操作,我們51CTO以前也介紹了不少。比如VB.NET數(shù)據(jù)庫壓縮的實現(xiàn)方法,VB.NET操作MySql數(shù)據(jù)庫的具體操作技巧等等。
定義數(shù)據(jù)鏈接部分省略, myConn為鏈接對象 ProcName為存儲過程名
1.VB.NET調用SQL Server存儲過程時無返回值
Private Function SqlProc1(ByVal ProcName As String) As Boolean '定義數(shù)據(jù)鏈接部分省略, 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.VB.NET調用SQL Server存儲過程返回普通值
Private Function SqlProc1(ByVal ProcName As String) As String
'定義數(shù)據(jù)鏈接部分省略, 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.OutputTry
.ExecuteNonQuery()
Return .Parameters(1).Value()
Catch ex As Exception
Return "無編碼生成"
End Try
End Function
3.VB.NET調用SQL Server存儲過程返回數(shù)據(jù)集
'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
'定義一個數(shù)據(jù)適配器,并設置參數(shù)
Dim myDapter As New SqlClient.SqlDataAdapter(myCommand)
myDapter.SelectCommand.Parameters.Add
("@name", SqlDbType.VarChar, 20).Value = Param1'定義一個數(shù)據(jù)集對象,并填充數(shù)據(jù)集
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為查詢條件的長度,可以根據(jù)實際情況而定;
但不建議用于過長的查詢條件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
關于VB.NET調用SQL Server的存儲過程問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業(yè)資訊頻道了解更多相關知識。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。