62

一个简单的问题是,如何将 MS Query 中的字段值增加 1 ?我正在尝试int使用参数化方法将 1 (+1) 添加到我的 SQL Server 数据库中的列。类似于对变量的 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 行:更新成功 = 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 回答