C# mise à Jour de la Table à l'aide de SqlCommand.Paramètres

Je suis en train de mettre à jour une MSSQL table à l'aide de SqlCommand, je pense que c'est une erreur de syntaxe avec mon T-SQL, mais voici ce que j'ai à ce jour:

SqlCommand sqlCmd = new SqlCommand("UPDATE yak_tickets SET email = @emailParam, subject = @subjectParam, text = @textParam, statusid = @statusIDParam, ticketClass = @ticketClassParam WHERE id = @ticketIDParam", sqlConn);

Les paramètres fonctionnent comme ils le devraient, cependant, le tableau n'est jamais mis à jour lorsque j'exécute le code. Toute aide serait apprécié =)

Voici le reste du code:

    #region Parameters
    /* Parameters */
    sqlCmd.Parameters.Add("@ticketIDParam", SqlDbType.BigInt);
    sqlCmd.Parameters["@ticketIDParam"].Value = ticketID;

    sqlCmd.Parameters.Add("@emailParam", SqlDbType.NVarChar);
    sqlCmd.Parameters["@emailParam"].Value = ticketToBeSubmitted.getEmail();

    sqlCmd.Parameters.Add("@subjectParam", SqlDbType.NVarChar);
    sqlCmd.Parameters["@subjectParam"].Value = ticketToBeSubmitted.getSubject();

    sqlCmd.Parameters.Add("@textParam", SqlDbType.Text);
    sqlCmd.Parameters["@textParam"].Value = ticketToBeSubmitted.getTicketContent();

    sqlCmd.Parameters.Add("@statusIDParam", SqlDbType.NVarChar);
    sqlCmd.Parameters["@statusIDParam"].Value = ticketToBeSubmitted.getStatus();

    sqlCmd.Parameters.Add("@ticketClassParam", SqlDbType.NVarChar);
    sqlCmd.Parameters["@ticketClassParam"].Value = ticketToBeSubmitted.getTicketClass();
    #endregion

    #region Try/Catch/Finally
    /* Try/Catch/Finally */

    try
    {
        sqlConn.Open();
        sqlCmd.ExecuteNonQuery();
    }
    catch (SqlException sqlEx)
    {
        sqlErrorLabel.Text = sqlEx.ToString();
        sqlErrorLabel.ForeColor = System.Drawing.Color.Red;
    }
    finally
    {
        sqlConn.Close();
    }

Et la signature de la méthode:

  public static void updateTicketInDatabase(Ticket ticketToBeSubmitted, Label sqlErrorLabel, int ticketID)
C'est probablement une question stupide, mais avez-vous attribuer votre commande sql pour votre connexion sql? sqlCommand.Connexion = sqlConn; j'ai l'habitude de le faire dans la construction sqlCommand = new SqlCommand(sqlConn); je pense qu'il serait lever une erreur si vous navez pas.
Ouais, le constructeur que j'ai utilisé a un à la fin.
Êtes-vous réellement à l'aide de champs de type NVArchar dans votre base de données? ou tout simplement varchar?
Ouais, NVarChar.

OriginalL'auteur skylerl | 2009-12-19