2017-05-28 19 views
2

を指定された更新プロシージャまたは関数Event_Updateはあまりにも多くの引数が

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 

イベントテーブルのためのC#コードから手続き機能付きテーブル・イベントを更新する

手続きをしようとしたときに、私は、エラーメッセージProcedure or function Event_Update has too many arguments specified.を取得しています持っています

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#コード

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

コマンドオブジェクトを再使用しないでください。実行するクエリごとに新しいクエリを作成します。また、接続オブジェクトを再利用しないでください。 DB接続プールはそれを処理します。したがって、トランザクションのスコープの接続を作成し、両方を 'using'ステートメントに入れて処分するだけです。 – juharr

答えて

0

cmdグローバル変数のですか?クリアcmd.Parameters in updateメソッド:

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(); 
} 
関連する問題