Why you don't use SqlDataSource to perform CURD operations instead ADO.NET inside the RowDeleting event ? try this
create table tblGRNTSFunders (
FunderId INT,
first_name VARCHAR(50),
kast_name VARCHAR(50)
);
GO
insert into tblGRNTSFunders (FunderId, first_name, kast_name) values (1, 'Baudoin', 'Dedenham');
insert into tblGRNTSFunders (FunderId, first_name, kast_name) values (2, 'Deena', 'Ferber');
insert into tblGRNTSFunders (FunderId, first_name, kast_name) values (3, 'Tuesday', 'Hanhart');
insert into tblGRNTSFunders (FunderId, first_name, kast_name) values (4, 'Arlyne', 'Gilli');
insert into tblGRNTSFunders (FunderId, first_name, kast_name) values (5, 'Lizbeth', 'Rouff');
insert into tblGRNTSFunders (FunderId, first_name, kast_name) values (6, 'Rayshell', 'Whimper');
insert into tblGRNTSFunders (FunderId, first_name, kast_name) values (7, 'Brinna', 'Eneas');
insert into tblGRNTSFunders (FunderId, first_name, kast_name) values (8, 'Aile', 'Elvins');
insert into tblGRNTSFunders (FunderId, first_name, kast_name) values (9, 'Evvie', 'Bomb');
insert into tblGRNTSFunders (FunderId, first_name, kast_name) values (10, 'Lara', 'Vogeler');
CREATE PROC spGRNTSFunderId_Delete
@FunderId int
AS
SET NOCOUNT ON;
IF @FunderId IS NOT NULL
DELETE FROM tblGRNTSFunders WHERE (FunderId = @FunderId)
protected void gvFunders_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
GridViewRow row = gvFunders.Rows[e.RowIndex];
Label lblFunderId = (Label)row.FindControl("lblFunderId");
using (SqlConnection sqlConnection1 = new SqlConnection(ConfigurationManager.ConnectionStrings["microsoftQADBConnectionString"].ConnectionString.ToString()))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "spGRNTSFunderId_Delete";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = sqlConnection1;
cmd.Parameters.AddWithValue("@FunderId", Convert.ToInt32(lblFunderId.Text));
cmd.Connection.Open();
cmd.ExecuteNonQuery();
}
}
}