2017-05-28 3 views
2

Ich erhalte eine Fehlermeldung Procedure or function Event_Update has too many arguments specified. beim Versuch, Tabellenereignis mit der Prozedur Funktion von C# -CodeProzedur oder Funktion Event_Update hat zu viele Argumente angegeben

Verfahren zur Aktualisierung

create procedure Event_Update 
@id int, 
@image varchar(50), 
@title varchar(255), 
@description varchar(255), 
@date date 

as 

begin 
update event set image = @image,[email protected],[email protected],[email protected] where [email protected] 
end 

Ereignistabelle zu aktualisieren

create table event(
id int identity(1,1) primary key, 
image varchar(50) not null, 
title varchar(255) not null, 
description varchar(255) not null, 
event_date date not null 
) 

C# -Code

public void update(int id,string title, string image, string events, string date) 
    { 
     cmd.CommandText = "Event_Update"; 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.AddWithValue("@id", id); 
     cmd.Parameters.AddWithValue("@title", title); 
     cmd.Parameters.AddWithValue("@image", image); 
     cmd.Parameters.AddWithValue("@description", events); 
     cmd.Parameters.AddWithValue("@date", date); 
     cmd.ExecuteNonQuery(); 
    } 
+0

Verwenden Sie Befehlsobjekte nicht wieder. Erstellen Sie für jede Abfrage, die Sie ausführen möchten, eine neue Abfrage. Verwende auch keine Verbindungsobjekte. Der DB-Verbindungspool wird das für Sie übernehmen. Erstellen Sie einfach eine Verbindung für den Umfang einer Transaktion und fügen Sie beide in eine 'using'-Anweisung ein, damit sie entsorgt werden. – juharr

Antwort

0

cmd ist globale Variable? clear cmd.Parameters in update Methode:

public void update(int id,string title, string image, string events, string date) 
{ 
    cmd.Parameters.Clear(); 
    cmd.CommandText = "Event_Update"; 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Parameters.AddWithValue("@id", id); 
    cmd.Parameters.AddWithValue("@title", title); 
    cmd.Parameters.AddWithValue("@image", image); 
    cmd.Parameters.AddWithValue("@description", events); 
    cmd.Parameters.AddWithValue("@date", date); 
    cmd.ExecuteNonQuery(); 
} 
Verwandte Themen