Этот код всегда дает мне ошибку........системы.argumentoutofrangeexception: индекс находился вне допустимого диапазона. Должно быть неотрицательным и меньше размера коллекции.
Stored Procedure.......... USE [myDatabase] GO /****** Object: StoredProcedure [dbo].[sp_main] Script Date: 28-Jun-16 3:57:04 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[sp_main] ( @id int = 0, @action varchar(50) = NULL, @firstname varchar(50) = NULL, @lastname varchar(50) = NULL, @email varchar(50) = NULL, @state varchar(50) = NULL, @city varchar(50) = NULL, @mob varchar(50) = NULL, @dep varchar(50) = NULL, @dob date = NULL, @salary int = 0 ) as begin if @action = 'insert' begin insert into empDetail values (@firstname, @lastname, @email, @state, @city, @mob, @dep) declare @empId int set @empId = SCOPE_IDENTITY() insert into empDpartment values(@empId, @firstname, @dep, @dob, @salary) end if @action = 'delete' begin delete from empDetail where id = @id end if @action = 'update' begin update empDetail set fname = @firstname, lname = @lastname, email = @email, state = @state, city = @city, mob = @mob, dep = @dep where id = @id update empDpartment set fname = @firstname, department = @dep, dob = @dob, salary = @salary where empID = @id end if @action = 'select' begin select * from empDetail end end Code for deleting data........ protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { int id = int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString()); cmd = new SqlCommand("sp_main", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@id", id); cmd.Parameters.AddWithValue("@action", "delete"); con.Open(); cmd.ExecuteNonQuery(); con.Close(); }<b><b><b><b><b><b></b></b></b></b></b></b>
Что я уже пробовал:
Любой может мне помочь....Я понятия не имею, как решить эту ошибку.
ZurdoDev
Нет никакой причины показывать весь sql-код. Ошибка происходит в C#. Вы понимаете, о чем говорит вам ошибка?
Foothill
В вашем блоке кода единственное место, где я могу определить, где используется коллекция, - это GridView1. DataKeys[e.Параметр rowindex]. Проверьте, находится ли индекс строки в данных события в ключах данных. Я подозреваю, что это не так.
jayveebishie
Вы должны научиться использовать точку останова и проверять свой код построчно