0

私は単純なグリッドビューを持っています。tableData を gridview にバインドするための SqlDataSource。

行の更新時に、セル ( int 型) の値を 1 増やしようとしています。これが私のコードですが、機能していません:

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();

                }
            }

        }

なぜ機能しないのかわかりません。現在の編集行のセルを 1 つ増やす必要があります。

ありがとう

4

2 に答える 2

0

ここで提供した内容に基づいて、実際に何も追加していません

int set = stra + 1;

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

代わりにこれを試してください

int stra = stra + 1;

dataCommand.Parameters.AddWithValue("Total", stra);
于 2012-04-09T19:07:13.067 に答える
0
  • キーを提供していないため、編集した行だけでなく、すべての行を更新しています
  • 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();
        }
    }
    
于 2012-04-09T19:17:45.053 に答える