繁体   English   中英

GridView:如何在行更新时每次将单元格的值增加一?

[英]GridView: how to increase value of a cell by one everytime at row updating?

我有一个简单的 gridview.SqlDataSource 将 tableData 绑定到 gridview。

在行更新时,我试图将单元格(类型 int )的值增加一个。 这是我的代码,但不起作用:

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            GridViewRow row = GridView1.Rows[e.RowIndex];
            string str = ((TextBox)(row.Cells[8].Controls[0])).Text;
            int conv = Convert.ToInt32(str);
            int set = conv + 1;
            string conn = "conn string";
            string sqlQuery = "UPDATE TableName SET Total =@Total";
            using (SqlConnection dataConnection = new SqlConnection(conn))
            {
                using (SqlCommand dataCommand = new SqlCommand(sqlQuery, dataConnection))
                {
                    dataCommand.Parameters.AddWithValue("Total", set);
                    dataConnection.Open();
                    dataCommand.ExecuteNonQuery();
                    dataConnection.Close();

                }
            }

        }

我不知道为什么不起作用,我需要将当前编辑行的单元格增加一个。

谢谢

根据您在此处提供的内容,您永远不会添加任何内容

int set = stra + 1;

dataCommand.Parameters.AddWithValue("Total", set);

试试这个

int stra = stra + 1;

dataCommand.Parameters.AddWithValue("Total", stra);
  • 由于您没有提供密钥,您正在更新所有行而不是仅编辑的行
  • 您应该使用e.NewValues来检索修改后的值

    string sqlQuery = "UPDATE TableName SET Total=@Total WHERE ID=@ID"; using (SqlConnection dataConnection = new SqlConnection(conn)) { using (SqlCommand dataCommand = new SqlCommand(sqlQuery, dataConnection)) { var total = (int)e.NewValues["Total"] + 1; dataCommand.Parameters.AddWithValue("Total", total); dataCommand.Parameters.AddWithValue("ID", (int)e.Keys["ID"].Value); dataConnection.Open(); dataCommand.ExecuteNonQuery(); } }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM