asp.netでストアドプロシージャを実行しようとしています。ストアドプロシージャには3つのパラメータが必要で、3つすべてがID(ints)です。3つのパラメーターは、TaskID、ExhibitID、およびInvestigatorIDです。
javascript関数から取得したExhibitIDの配列を含む隠しフィールドがあります。私の質問は、配列をループしているときにクエリを実行するにはどうすればよいですか?
これが私のストアドプロシージャの例です:
var cnSaveTask = new SqlConnection(ConfigurationManager.ConnectionStrings["OSCIDConnectionString"].ToString());
var comLinkExhibitToTask = new SqlCommand("p_CaseFileTasksExhibitLinkAdd", cnSaveTask) { CommandType = CommandType.StoredProcedure };
foreach (string exhibit in hidExhibitsIDs.Value.Split(','))
{
comLinkExhibitToTask.Parameters.AddWithValue("@TaskID", taskID);
comLinkExhibitToTask.Parameters.AddWithValue("@ExhibitID", Convert.ToInt32(exhibit));
comLinkExhibitToTask.Parameters.AddWithValue("@InvestigatorID", int.Parse(Session["InvestigatorID"].ToString()));
}
try
{
cnSaveTask.Open();
comLinkExhibitToTask.ExecuteNonQuery();
}
しかし、私のDBでは機能していません。何も追加されません。私の推測では、反復して実行されていないため、毎回「exhibitID」を置き換え続け、最終的には実行しようとします。"comLinkExhibitToTask.ExecuteNonQuery()"
しかし、トライの外に追加するだけでは良い考えではないと思います。助言がありますか?