Ich bin ratlos, ich verstehe nicht, warum die Prozedur diesen Parameter nicht bekommt ...
Prozedur ( procInfoColor
):
ALTER PROCEDURE [dbo].[procInfoColor]
(@ID int)
AS
BEGIN
SELECT Id, Code, [Description], IsActive FROM tblColor WHERE Id = @ID
END
VB.Net-Code:
Public Function infoColor(ID As Integer) As List(Of Colors) Implements iMaintenance.infoColor
Dim p = New DynamicParameters()
p.Add("@ID", ID, DbType.Int32)
Try
Return DbConn.Query(Of Colors)("procInfoColor", p, Nothing, 60, CommandType.StoredProcedure).ToList()
Catch ex As Exception
End Try
End Function
SQL Trace-Befehl (Textdaten) - Der Befehl wird vom VB.NET-Prozeduraufruf generiert:
exec sp_executesql N'procInfoColor',N'@ID int',@ID=9
Error:
Meldung 201, Ebene 16, Status 4, Prozedur procInfoColor, Zeile 2 Die Prozedur oder Funktion 'procInfoColor' erwartet den Parameter '@ID', der nicht bereitgestellt wurde.
Ich kann dies problemlos ausführen, wenn Sie die Prozedur mit einem Rechtsklick ausführen, aber wenn ich die Prozedur von meiner VB.Net-Anwendung aus aufrufe, erhalte ich diese Fehlermeldung, dass @ID
nicht angegeben ist. Ich habe die SQL-Ablaufverfolgung überprüft und es sieht so aus, als ob sie mir zur Verfügung gestellt wird?
Jede Hilfe wäre dankbar.
Mögliches Duplikat von: Führen Sie die gespeicherte Prozedur mit Parametern in Dapper aus
Verwenden Sie den benannten Parameternamen für den Befehlstyp, wenn Sie den Dapper-Aufruf ausführen:
Public Function infoColor(ID As Integer) As List(Of Colors)
Implements iMaintenance.infoColor
Dim p = New DynamicParameters()
p.Add("@ID", ID, DbType.Int32)
Try
Return DbConn.Query(Of Colors)("procInfoColor",
p,
Nothing,
60,
commandType:=CommandType.StoredProcedure ).ToList()
Catch ex As Exception
End Try
End Function