web-dev-qa-db-fra.com

Comment ajouter plus un (+1) à une colonne SQL Server dans une requête SQL

La question simple est de savoir comment incrémenter de 1 la valeur d'un champ dans une requête MS. J'essaie d'ajouter 1 (+1) à une colonne int de ma base de données SQL Server à l'aide d'une méthode paramétrée. Semblable à une opération i ++ sur une variable. J'utilise la méthode suivante:

public static int UpdateFieldCount(int parameterId)
{
    // variable to hold the number of rows updated or the success of the query
    int updatesuccess = 0;

    // build your connection string
    string connectionstring = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
    SqlConnection conn = new SqlConnection(connectionstring);

    // build your SQL Query statement
    string SQLString = "UPDATE TableName SET TableField + 1 WHERE SomeFilterField = @ParameterID";        
    SqlCommand sqlcmd = new SqlCommand(SQLString, conn);
    sqlcmd.Parameters.AddWithValue("@ParameterID", parameterID);

    conn.Open();
    updatesuccess = sqlcmd.ExecuteNonQuery();

    conn.Close(); 

    return updatesuccess;
}

Cette méthode renvoie l'erreur suivante liée au signe plus (+) dans ma requête SQL:

Syntaxe incorrecte près de '+'.

Description: une exception non gérée s'est produite lors de l'exécution de la demande Web en cours. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails des exceptions: System.Data.SqlClient.SqlException: Syntaxe incorrecte près de '+'.

Erreur de source:

Ligne 315:
Ligne 316: conn.Open ();
Ligne 317: updatesuccess = sqlcmd.ExecuteNonQuery ();
Ligne 318: conn.Close ();
Ligne 319:

Fichier source: c:\testdevlocation\appname\App_Code\ClassFileName.cs Ligne: 317

Un conseil à ce sujet?

38
thenextmogul

Vous avez besoin d'une valeur et d'un champ pour l'assigner. La valeur est TableField + 1, la tâche est donc:

SET TableField = TableField + 1
65
Guffa
"UPDATE TableName SET TableField = TableField + 1 WHERE SomeFilterField = @ParameterID"
54
Ashalynd