donc je suis en train de connecter une base de données sql. J'ai une page asp.net et quand l'utilisateur sélectionne la liste déroulante pour l'état et sélectionne la valeur à Fermé, puis clique sur le bouton mettre à jour le ticket, j'en ai besoin pour mettre à jour la colonne Closed_date dans la table.C# if instruction avec dropdownlist.selectedvalue
ma table a la colonne Closed_Date type datetime. J'ai une procédure stockée qui met à jour cette colonne en fonction du numéro de ticket.
ici est où je vais avoir du mal:
con = new SqlConnection(_strConStr);
cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "iz_sp_updateticket";
cmd.Parameters.Add(new SqlParameter("@Priority", SqlDbType.Int)).Value = ddlPriority.SelectedValue;
cmd.Parameters.Add(new SqlParameter("@Status", SqlDbType.VarChar, 50)).Value = ddlStatus.SelectedValue;
cmd.Parameters.Add(new SqlParameter("@Environment", SqlDbType.VarChar, 50)).Value = ddlEnv.SelectedValue;
cmd.Parameters.Add(new SqlParameter("@Info", SqlDbType.VarChar)).Value = txtMessage.Text;
cmd.Parameters.Add(new SqlParameter("@Ticket", SqlDbType.Int)).Value = txtTicket.Text;
if (ddlStatus.SelectedValue == "Closed")
{
cmd.Parameters.Add(new SqlParameter("@Status", SqlDbType.VarChar, 50)).Value = ddlStatus.SelectedValue;
cmd.Parameters.Add(new SqlParameter("@Closed_Date", SqlDbType.DateTime)).Value = System.DateTime.Now;
}
else
{
cmd.Parameters.Add(new SqlParameter("@Status", SqlDbType.VarChar, 50)).Value = ddlStatus.SelectedValue;
cmd.Parameters.Add(new SqlParameter("@Closed_Date", SqlDbType.DateTime)).Value = DBNull.Value;
}
con.Open();
cmd.ExecuteNonQuery();
Voici ma procédure stockée:
CREATE procedure [dbo].[iz_sp_updateticket]
@Ticket int,
@Priority varchar(50),
@Status varchar(50),
@Environment varchar(50),
@Info varchar(max),
@Closed_date datetime
as
UPDATE stotickets
SET
Priority = @Priority,
[Status] = @Status,
Environment = @Environment,
Info = @Info,
Closed_date = @Closed_date
WHERE Ticket = @Ticket
erreur
Procedure or function iz_sp_updateticket has too many arguments specified.
Quel est précisément votre problème? Je devine peut-être que votre procédure stockée doit être mise à jour pour vérifier si @Closed_Date est null et ne pas le mettre à jour si c'est le cas? Ou? –
je l'ai compris. j'ai enlevé la 1ère mise à jour de statut et cela fonctionne maintenant – IGor