Ich habe eine Funktion in C#, die Daten einfügen soll. Alles, was es tun soll, ist eine gespeicherte Prozedur aufzurufen, die von einem Request Body gegeben wird, den ich über Fiddler beliefert. Im Moment versuche ich es zu testen, aber ich bekomme diesen Fehler immer wieder.SQLCommand in C# Nicht liefernder Parameter
"Prozedur oder Funktion 'spCreatePerson' erwartet den Parameter '@first', der nicht mitgeliefert wurde." Hier
ist die objekt-
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Phone { get; set; }
public string Email { get; set; }
public int PersonTypeId { get; set; }
}
Hier wird die Anfrage Körper -
{"FirstName":"Test","LastName":"MuhFuh","Phone":"5555555555","Email":"[email protected]","PersonTypeId":1}
Hier ist die Funktion für den Aufruf des proc-
public static int InsertData(string procName, Person p)
{
int rowsAffected = 0;
con = CreateConnection();
using (con)
{
cmd.CommandType = CommandType.StoredProcedure;
cmd = new SqlCommand("spCreatePerson", con);
cmd.Parameters.AddWithValue("@first", p.FirstName);
cmd.Parameters.AddWithValue("@last", p.LastName);
cmd.Parameters.AddWithValue("@email", p.Email);
cmd.Parameters.AddWithValue("@phone", p.Phone);
cmd.Parameters.AddWithValue("@pTypeID", p.PersonTypeId);
rowsAffected = cmd.ExecuteNonQuery();
}
return rowsAffected;
}
Wie Sie ich sehen kann übergeben im Parameter, aber bekomme diesen Fehler. Gibt es etwas, das ich im Code verpasst habe? Ich bin hindurchgegangen und die Daten scheinen gut zu bestehen.
EDIT
Hier ist die gespeicherte prozedur
CREATE PROC [dbo].[spCreatePerson] @first nvarchar(100), @last
nvarchar(100), @email nvarchar(50), @phone nvarchar(100), @pTypeID int
AS
INSERT INTO Person(FirstName, LastName, Email, Phone, PersonTypeID)
VALUES(@first, @last, @email, @phone, @pTypeID)
GO
Beim Debuggen, wird 'p.FirstName' einen Wert enthalten? – David
@David Ja. "Test" wird vom Anfragetext übernommen. Ich debuggte alles, was die Daten durchzumachen scheinen. –
Können Sie der Frage hier ein gespeichertes proc-Skript hinzufügen? – Sujith