SqlCommand com = new SqlCommand("insert into student_info values(@id,@name,@batch)",con);
com.Parameters.Add(new SqlParameter("@id", dataGridView1.CurrentRow.Cells[0].Value));
com.Parameters.Add(new SqlParameter("@name", dataGridView1.CurrentRow.Cells[1].Value) );
com.Parameters.Add(new SqlParameter("@batch", dataGridView1.CurrentRow.Cells[2].Value));
da.InsertCommand = com;
com = new SqlCommand("update student_info set name = @name, batch = @batch where s_id = @id", con);
com.Parameters.Add(new SqlParameter("@id", dataGridView1.CurrentRow.Cells[0].Value));
com.Parameters.Add(new SqlParameter("@name", dataGridView1.CurrentRow.Cells[1].Value));
com.Parameters.Add(new SqlParameter("@batch", dataGridView1.CurrentRow.Cells[2].Value));
da.UpdateCommand = com;
com = new SqlCommand("delete from student_info where s_id = @id", con);
com.Parameters.Add(new SqlParameter("@id", dataGridView1.Rows[(dataGridView1.CurrentRow.Index -1)].Cells[0].Value));
Используете ли вы вышеуказанный подход?К счастью, я выяснил причину этого исключения, но все еще ищу ответ.Ошибка возникает, потому что мы используем свойство CurrentRow dataGridView.Он отлично работает с командой вставки и обновления.Но когда мы выбираем cuurentRow для команды удаления, datagridview фактически выбирает следующую строку.Если следующая запись существует, она удаляется, в противном случае выдает ошибку, подобную этой.Я все еще ищу ответ .. К тому времени, когда вы можете использовать CommandBuilder, он отлично работает.