62

簡単な質問は、MS Query のフィールド値を 1 ずつインクリメントするにはどうすればよいかということです。intパラメータ化された方法を使用して、SQL Server データベースの列に 1 (+1) を追加しようとしています。変数に対する i++ 操作に似ています。私は次の方法を使用しています:

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;
}

このメソッドは、SQL クエリのプラス記号 (+) に関連する次のエラーをスローしています。

「+」付近の構文が正しくありません。

説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.Data.SqlClient.SqlException: '+' 付近の構文が正しくありません。

ソース エラー:

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

ソース ファイル: c:\testdevlocation\appname\App_Code\ClassFileName.cs 行: 317

これに関するアドバイスはありますか?

4

2 に答える 2

100

値とそれを割り当てるフィールドの両方が必要です。値はTableField + 1であるため、割り当ては次のとおりです。

SET TableField = TableField + 1
于 2013-10-14T22:11:33.373 に答える
74
"UPDATE TableName SET TableField = TableField + 1 WHERE SomeFilterField = @ParameterID"
于 2013-10-14T22:10:37.087 に答える