I have stored procedure which I will execute its result and pass it into a Dataset and return it but at the same time I have a Output parameter in my stored procedure which I also want to return, how can I return both the dataset and the integer output value with my function, or is there a more 'appropriate way' to handle such situation? Please kindly advice, thanks.
Public Function SelectCampaignManagementTableListing(ByVal objCampaignManagmentClassBLL As CampaignManagementBLL, ByVal dbConnection As DbConnection, ByVal SortExpression As String, ByVal SortFilterText As String, ByVal SortFilterField As String, ByVal SortDirection As String, ByVal PageNumber As Integer, ByVal PageCount As Integer, ByVal TotalCount As Integer) As DataSet
Dim dbCommand As DbCommand = Nothing
Dim retDS As DataSet = Nothing
Try
If dbConnection.State <> ConnectionState.Open Then
dbConnection.Open()
End If
dbCommand = GetStoredProcedureCommand("Campaign_LoadListing")
dbCommand.Connection = dbConnection
With objCampaignManagmentClassBLL
Select Case SortFilterField
Case "Code"
AddInParameter(dbCommand, "@Code", DbType.String, 50, DBNull.Value)
dbCommand.Parameters("@Code").Value = SortFilterText
Case "Name"
AddInParameter(dbCommand, "@Name", DbType.String, 150, DBNull.Value)
dbCommand.Parameters("@Name").Value = SortFilterText
End Select
Select Case SortDirection
Case "True"
AddInParameter(dbCommand, "@SortOrder", DbType.Boolean, 1, DBNull.Value)
dbCommand.Parameters("@SortOrder").Value = True
Case "False"
AddInParameter(dbCommand, "@SortOrder", DbType.Boolean, 1, DBNull.Value)
dbCommand.Parameters("@SortOrder").Value = False
End Select
AddInParameter(dbCommand, "@SortOrder", DbType.String, 50, DBNull.Value)
If Not String.IsNullOrEmpty(SortDirection) Then
dbCommand.Parameters("@SortOrder").Value = SortDirection
End If
Select Case SortExpression
Case "Code"
'sortType = "@SortByCampaignCode"
AddInParameter(dbCommand, "@SortByCampaignCode", DbType.Boolean, 1, DBNull.Value)
dbCommand.Parameters("@SortByCampaignCode").Value = True
Case "Name"
'sortType = "@SortByCampaignName"
AddInParameter(dbCommand, "@SortByCampaignName", DbType.Boolean, 1, DBNull.Value)
dbCommand.Parameters("@SortByCampaignName").Value = True
Case "Priority"
AddInParameter(dbCommand, "@SortByPriority", DbType.Boolean, 1, DBNull.Value)
dbCommand.Parameters("@SortByPriority").Value = True
End Select
AddInParameter(dbCommand, "@PageNumber", DbType.Int32, 4, DBNull.Value)
If Not IsNothing(PageNumber) Then
dbCommand.Parameters("@PageNumber").Value = PageNumber
End If
AddInParameter(dbCommand, "@PageCount", DbType.Int32, 4, DBNull.Value)
If Not IsNothing(PageCount) Then
dbCommand.Parameters("@PageCount").Value = PageCount
End If
' Heres the output parameter
Dim objOutputParameter As New SqlParameter("@Return_TotalCount", SqlDbType.Int)
dbCommand.Parameters.Add(objOutputParameter)
objOutputParameter.Direction = ParameterDirection.Output
End With
' These are the 2 items I need to return.
retDS = ExecuteDataSet(dbCommand)
Dim tCount As Integer = CInt(dbCommand.Parameters("@Return_TotalCount").Value)
Catch ex As Exception
Throw New DALException(ex, dbCommand, Caching.GetCustomerCodeCookie(), "SelectCampaignManagementTableListing")
Finally
If Not dbCommand Is Nothing Then
dbCommand.Dispose()
End If
End Try
Return retDS
End Function
You have a number of options:
Can Use class or struct which has DataSet property and intiger property. You can return that class or struct from your function by setting values inside the function
few links for many other alternatives:
How can I return multiple values from a function in C#?
Method should return multiple values
Is it possible for a function to return two values?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With