Ik heb een methode geschreven die StoredProcedures aan moet kunnen roepen. Hij werkt alleen niet helemaal zoals het zou moeten, want hij geeft steeds terug dat hij de SP niet kan aanroepen...
Wie kan me helpen??
Waarom doet ie het niet??
Public Function ExecuteStoredProcedure(ByVal strStoredProcName As String, ByVal lstParametervalues As ArrayList, ByVal lstTypes As ArrayList, ByVal intType As Integer) As ArrayList
If strStoredProcName.StartsWith("dbo.") Then
strStoredProcName = strStoredProcName.Replace("dbo.", "")
End If
Dim objCommand As SqlCommand = New SqlCommand(strStoredProcName, GetConnection())
Dim objDataReader As SqlDataReader
objCommand.CommandType = CommandType.StoredProcedure
Dim sqlParms(lstParametervalues.Count - 1) As SqlParameter
sqlParms.Initialize()
'Parameters names
Dim lstList As ArrayList = GetParametersForProcedure(strStoredProcName)
Dim i As Integer
For i = 0 To sqlParms.Length - 1
Dim lstParameter As ArrayList = lstList(i)
Dim typType As System.Type = lstTypes(i).GetType()
If (typType.Equals(GetType(Integer))) Then
Dim sqlParm As SqlParameter = objCommand.Parameters.Add(lstParameter(0), SqlDbType.Int)
Dim valValue As Integer = lstParametervalues(i)
sqlParm.Value = valValue
ElseIf (typType.Name.Equals("String")) Then
Dim sqlParm As SqlParameter = objCommand.Parameters.Add(lstParameter(0), SqlDbType.NVarChar)
Dim valValue As String = lstParametervalues(i)
sqlParm.Value = valValue
ElseIf (typType.Equals(GetType(DateTime))) Then
Dim sqlParm As SqlParameter = objCommand.Parameters.Add(lstParameter(0), SqlDbType.DateTime)
Dim valValue As DateTime = lstParametervalues(i)
sqlParm.Value = valValue
ElseIf (typType.Equals(GetType(Double))) Then
Dim sqlParm As SqlParameter = objCommand.Parameters.Add(lstParameter(0), SqlDbType.Float)
Dim valValue As Double = lstParametervalues(i)
sqlParm.Value = valValue
End If
Next i
Dim lstReturn As ArrayList
Try
objDataReader = objCommand.ExecuteReader()
Catch ex As Exception
Dim excException As New Exception("Fout bij uitvoeren Stored Procedure.")
Throw excException
End Try
lstReturn = ConvertReaderToList(objDataReader, intType)
objCommand.Connection.Close()
objCommand.Dispose()
Return lstReturn
End Function
Wie kan me helpen??
Waarom doet ie het niet??
Public Function ExecuteStoredProcedure(ByVal strStoredProcName As String, ByVal lstParametervalues As ArrayList, ByVal lstTypes As ArrayList, ByVal intType As Integer) As ArrayList
If strStoredProcName.StartsWith("dbo.") Then
strStoredProcName = strStoredProcName.Replace("dbo.", "")
End If
Dim objCommand As SqlCommand = New SqlCommand(strStoredProcName, GetConnection())
Dim objDataReader As SqlDataReader
objCommand.CommandType = CommandType.StoredProcedure
Dim sqlParms(lstParametervalues.Count - 1) As SqlParameter
sqlParms.Initialize()
'Parameters names
Dim lstList As ArrayList = GetParametersForProcedure(strStoredProcName)
Dim i As Integer
For i = 0 To sqlParms.Length - 1
Dim lstParameter As ArrayList = lstList(i)
Dim typType As System.Type = lstTypes(i).GetType()
If (typType.Equals(GetType(Integer))) Then
Dim sqlParm As SqlParameter = objCommand.Parameters.Add(lstParameter(0), SqlDbType.Int)
Dim valValue As Integer = lstParametervalues(i)
sqlParm.Value = valValue
ElseIf (typType.Name.Equals("String")) Then
Dim sqlParm As SqlParameter = objCommand.Parameters.Add(lstParameter(0), SqlDbType.NVarChar)
Dim valValue As String = lstParametervalues(i)
sqlParm.Value = valValue
ElseIf (typType.Equals(GetType(DateTime))) Then
Dim sqlParm As SqlParameter = objCommand.Parameters.Add(lstParameter(0), SqlDbType.DateTime)
Dim valValue As DateTime = lstParametervalues(i)
sqlParm.Value = valValue
ElseIf (typType.Equals(GetType(Double))) Then
Dim sqlParm As SqlParameter = objCommand.Parameters.Add(lstParameter(0), SqlDbType.Float)
Dim valValue As Double = lstParametervalues(i)
sqlParm.Value = valValue
End If
Next i
Dim lstReturn As ArrayList
Try
objDataReader = objCommand.ExecuteReader()
Catch ex As Exception
Dim excException As New Exception("Fout bij uitvoeren Stored Procedure.")
Throw excException
End Try
lstReturn = ConvertReaderToList(objDataReader, intType)
objCommand.Connection.Close()
objCommand.Dispose()
Return lstReturn
End Function