C# 将内容更新到数据库中的++1-C
这就是我必须构建的,当Kommer成为文章时,每次加载页面时发送数据库+1 我是这样做的:C# 将内容更新到数据库中的++1-C,c#,sql-server,ado.net,C#,Sql Server,Ado.net,这就是我必须构建的,当Kommer成为文章时,每次加载页面时发送数据库+1 我是这样做的: int id = Convert.ToInt32(Request.QueryString["Id"]); string viewSet = "1"; SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()); SqlC
int id = Convert.ToInt32(Request.QueryString["Id"]);
string viewSet = "1";
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "UPDATE Artikler SET viewSet = @viewSet++1 WHERE Id = @id;";
cmd.Parameters.AddWithValue("@Id", id);
cmd.Parameters.AddWithValue("@viewSet", viewSet);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
数据库中没有任何内容这是一个更新,因此您需要至少有一行具有给定Id。然后在数据库上运行此更新:
UPDATE Artikler SET viewSet = 0 WHERE Id = @id --it will clear counter
然后可以修改命令文本:
UPDATE Artikler SET viewSet += 1 WHERE Id = @id; --it will increment by 1 previous number
使用该CommandText,您不需要知道viewSet的上一个状态,所以不需要将其作为param传递
UPDATE Artikler SET viewset = ISNULL(viewset + 1, 1) WHERE Id = @id
如果初始视图集为null,则将其设置为1,否则将其增加。您不需要传递参数。除非您试图将初始值设置为1以外的值?如果未更新任何内容,则表中没有id=@id的记录。它仍然不起作用。这可能是因为ved在第页上使用了SqlDataSource?