Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将内容更新到数据库中的++1-C_C#_Sql Server_Ado.net - Fatal编程技术网

C# 将内容更新到数据库中的++1-C

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

这就是我必须构建的,当Kommer成为文章时,每次加载页面时发送数据库+1

我是这样做的:

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?