2

グリッド ビューで行を削除しようとしています。そのために、以下のようなrowdeletingイベントでコードを書いています。

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string UserId;
            SqlTransaction tran;

            using (con = new SqlConnection())
            {

                con.ConnectionString = ConfigurationManager.ConnectionStrings["EMASFBAConnectionString"].ConnectionString;
                cmd = new SqlCommand();
                cmd.Connection = con;
                con.Open();
                tran = con.BeginTransaction();
                TableCell cell = GridView1.Rows[e.RowIndex].Cells[1];
                string username = cell.Text;
                cmd.Transaction = tran;

                cmd.CommandText = "Delete from aspnet_Users where UserName='" + username + "'";
                UserId = cmd.ExecuteScalar().ToString();

                if (UserId.Length!=0)
                {
                    //delete user from membership table.
                    errorLabel.Text = "User is ready to delete";

                }
                tran.Commit();
                con.Close();
            }
        }

デバッグすると、セルの値が空になります。私はここで何を間違えましたか?このグリッド ビューには、各行の前に編集および削除ボタンがあります。私は試してみましCells[0],Cells[2]たが、空の値のみを与えました。誰でも私に解決策を教えてもらえますか?

4

3 に答える 3

1

次のコードを試してください。

var empId = Convert.ToInt32(this.gvDetails.DataKeys[e.RowIndex].Values["EmpId"].ToString());
于 2013-04-24T06:47:35.177 に答える