Удаление строки из GridView с хранимой процедурой - PullRequest
0 голосов
/ 04 марта 2012

Что не так с моим кодом?Я хочу удалить строку из сетки, когда я нажимаю удалить гиперссылку (кнопка).

Показывает, что значение выходит за пределы диапазона.Что мне делать?

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) 
{
  cn = new SqlConnection(conStr);
  delCmd = new SqlCommand();
  cn = new SqlConnection(conStr);
  cn.Open();

  //delCmd.Connection = cn;

  delCmd = new SqlCommand("spDelEmployee",cn);
  delCmd.CommandType = CommandType.StoredProcedure;
  delCmd.CommandText = "spDelEmployee";
  delCmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Value = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values);

  cn.Open();
  delCmd.ExecuteNonQuery();
  DataBind();
  cn.Close();
}

Хранимая процедура:

ALTER PROCEDURE spDelEmployee
@EmployeeID int
AS
DELETE FROM Employed WHERE EmployeeID=@EmployeeID
RETURN  

Ответы [ 2 ]

0 голосов
/ 06 марта 2012

Вот как я решил свою проблему) Проснулся.

  protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) 
    {

        cn = new SqlConnection(conStr);
        cn.Open();

        delCmd = new SqlCommand("spDelEmployee",cn);
        delCmd.CommandType = CommandType.StoredProcedure;


        object id = GridView1.Rows[e.RowIndex].Cells[em.EmployeeID].Text.ToString();

        delCmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Value = Convert.ToInt32(id);

        delCmd.ExecuteNonQuery();

    }
0 голосов
/ 05 марта 2012

Вы можете указать конкретную ячейку в GridView. В своем коде вы можете просто заменить:

GridView1.DataKeys[e.RowIndex].Values

с:

GridView1.Rows[e.RowIndex].Cells[xxx].Text

где xxx - номер столбца с 0 индексами, который содержит EmployeeID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...