简单的问题是,如何将MS Query中的字段值递增1?我正在尝试使用参数化方法将1(+1)添加到SQL Server数据库中的int
列。类似于对变量的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
对此有何建议?
答案 0 :(得分:63)
您需要一个值和一个字段来分配它。值为TableField + 1
,因此赋值为:
SET TableField = TableField + 1
答案 1 :(得分:52)
"UPDATE TableName SET TableField = TableField + 1 WHERE SomeFilterField = @ParameterID"
答案 2 :(得分:-2)
选择col1,col2, 当col1 ='1'然后col1 + 1时的情况 否则'0'以newvalue结尾 来自table_name