Tja! Jo men jag har gjort det.. det är därför jag inte fattar vad som är fel. Har du i proceduren deklarerat en mottagande variabel för parametern OrderID? så här ser den ut! Hur ser din kod i programmet ut? koden ser ut så här! Du får konverteringsproblem Nja ja har tagit koden från en bok och enligt den så ska de vara så, hur konventerar jag om det då? Har du kollat så att inte orderid är nothing. Testa även att ta bort parantesen runt parameterdeklarationen i SP. Sen kan man skriva så här också.. Tack för din hjälp, tyvärr så var de inte det heller provad dina rader "Dim objParam..........." men jag ska numera använda det så för det var lättare tyckte jag.. Hej! jag löste problemet som ovan.. men tack ändå för att du ville hjälpa migStoreprocedure fel!
Eftersom jag är student och vill lära mig mycket mer än jag redan kan om asp.net så skulle jag vilja ha lite hjälp med ett problem som har uppstått när jag bygger ett projekt.
Följande fel kommer upp:
Procedure 'GetOrderInfo' expects parameter '@OrderID', which was not supplied.
vet att det kanske är lite svårt att förstå problemet så här kanske men jag har verkligen felsökt o letat men hittar inget i min kod som e fel, min storedprocedure ser helt korrekt ut ock koden där ja använder den ser oxå väldigt rätt ut, men ändå fungerar inget
skulle vara så tacksam om någon har ett svar
MVH
PatrikSv:Storeprocedure fel!
men tack ändåSv: Storeprocedure fel!
Sv:Storeprocedure fel!
CREATE PROCEDURE GetOrderInfo
(@OrderID int)
AS
SELECT OrderID,
(SELECT SUM(EnhetKostnad*Mangd) FROM OrderDetaljer WHERE OrderID = @OrderID)
AS TotalAntal,
DateSkapad,
DateFraktad,
Bekraftad,
Avslutad,
Borttagen,
Kommentar,
KundNamn,
FraktAdress,
KundEmail
FROM Ordrar
WHERE OrderID = @OrderID
GOSv: Storeprocedure fel!
Eller exekverar du bara SP:n rakt uppochner för att testa?Sv:Storeprocedure fel!
Public Shared Function GetOrderInfo(ByVal orderId As String) As OrderInfo
' Skapa anslutnings objektet
Dim connection As New SqlConnection(connectionString)
' skapa och initisiera kommand objektet
Dim command As New SqlCommand("GetOrderInfo", connection)
command.CommandType = CommandType.StoredProcedure
' lägg till en input parameter och visa värdet för den
command.Parameters.Add("@OrderID", SqlDbType.Int)
command.Parameters("@OrderID").Value = orderId
' SqlDataReaderns objekt används för att få resultatet
Dim reader As SqlDataReader
' Få resultatet
Try
'öppna anslutningen
connection.Open()
' Returnera en SqlDataReader till den anropande funktionen
reader = command.ExecuteReader(CommandBehavior.CloseConnection)
Catch e As Exception
' stäng anslutnigen och kaste undantaget igen
connection.Close()
Throw e
End Try
' vi flyttar den första (och enda) registret in reader objektet och sparar informationen i ett orderinfo objekt.
Dim orderInfo As New OrderInfo
If reader.Read() Then ' returnerar true om de finns några register
orderInfo.OrderID = reader("OrderID").ToString()
orderInfo.TotalAntal = reader("TotalAntal").ToString()
orderInfo.DateSkapad = reader("DateSkapad").ToString()
orderInfo.DateFraktad = reader("DateFraktad").ToString()
orderInfo.Bekraftad = Boolean.Parse(reader("Bekraftad").ToString())
orderInfo.Avslutad = Boolean.Parse(reader("Avslutad").ToString())
orderInfo.Borttagen = Boolean.Parse(reader("Borttagen").ToString())
orderInfo.Kommentar = reader("Kommentar").ToString()
orderInfo.KundNamn = reader("KundNamn").ToString()
orderInfo.FraktAdress = reader("FraktAdress").ToString()
orderInfo.KundEmail = reader("KundEmail").ToString()
' stäng readern och dess anslutning
reader.Close()
connection.Close()
End If
' returnera informationen i orderinfo objektet
Return orderInfo
End FunctionSv: Storeprocedure fel!
<b>Public Shared Function GetOrderInfo(ByVal orderId As String) As OrderInfo</b>
<b>command.Parameters.Add("@OrderID", SqlDbType.Int)
command.Parameters("@OrderID").Value = orderId</b>
Först har du definierat den som en string, dvs en textsträng, sen inne i parametern så definieras den som en int, dvs heltal, utan att en konvertering sker. Är det inte så att den ska vara en int hela vägen?Sv:Storeprocedure fel!
Sv: Storeprocedure fel!
Dim objParam As New SqlParameter("@OrderID", SqlDbType.Int)
objParam.Value = orderid
Command.Parameters.Add(objParam)
Vet inte om det gör någon skillnad men det går ju att testa om inte det var typomvandlingen som var problemet.Sv:Storeprocedure fel!
Jag har löst problemet nu.. bytte ut en string mot en integer som jag missat tidigare..
tack alla ändå!Sv: Storeprocedure fel!
Öppna Query Analyzern och skriv <b>EXEC GetOrderInfo </b> + valfri siffra motsvarande OrderID
Tryck F5.
Vad händer?
//HåkanSv:Storeprocedure fel!
mvh patrik