Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Julierme Felix

Datagrid + Form de Alteração - VS2003

Recommended Posts

Pessoal tenho datagrid com um checkbox onde escolho o item que desejo alterar (não quero fazer a alteração no datagrid), após selecionar o registro e clicar no botão OK é aberto o form de alteração justamente com os dados selecionados do Datagrid. Até tudo bem, mas não estou conseguindo agora excluir o registro.

 

Código do botão OK do datagrid

Private Sub BtnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
		For Each item As DataGridItem In Me.dgConsulta.Items
			If item.ItemType = ListItemType.Item OrElse item.ItemType = ListItemType.AlternatingItem Then

				Dim ckitem As CheckBox = DirectCast(item.FindControl("CkItem"), CheckBox)
				If ckitem.Checked Then
					Me.Label2.Text &= item.Cells(1).Text
				End If
			End If
		Next
		Response.Redirect("Alterar.aspx?id=" + Label2.Text)
End sub
Código do botão Exlcuir no form de alteração

Private Sub btnexcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnexcluir.Click
		Me.MessageBox1.ShowConfirmation("Deseja Mesmo Excluir?", "Excluir", True, False)
	End Sub
Private Sub MessageBox1_YesChoosed(ByVal sender As Object, ByVal Key As String) Handles MessageBox1.YesChoosed
		If Key = "Excluir" Then
			Dim drAux As DataRow()
			drAux = AlterarDS1.Tables("tbl_audio").Select("ID=" + editID.Text) '.Delete()
			AlterarDS1.Tables("tbl_audio").Rows(editID.Text).Delete()
			SqlDataAdapter1.Update(AlterarDS1)
			DataBind()
End sub
Porém ao exceutar aparece a seguinte mensagem de erro

 

There is no row at position 168.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

 

Exception Details: System.IndexOutOfRangeException: There is no row at position 168.

 

Source Error:

 

Line 557: Private Sub MessageBox1_YesChoosed(ByVal sender As Object, ByVal Key As String) Handles MessageBox1.YesChoosed

Line 558: If Key = "Excluir" Then

Line 559: AlterarDS1.Tables("tbl_audio").Rows(editID.Text).Delete()

Line 560: SqlDataAdapter1.Update(AlterarDS1)

Line 561: DataBind()

 

 

 

Sei que é relacionado a posição do registro na tabela, mas não estou conseguindo resolver.

 

 

 

Julierme Felix

Compartilhar este post


Link para o post
Compartilhar em outros sites

A linha que vai ser exlcuida esta sendo passada pelo seguinte parâmetro: editID.Text.

Este valor deve estar errado, e eu não encontrei no código que você postou o momento em que você alimenta ele.

 

Abraços...

 

O EditID.text é alimentado no pageload da pagina, segue o codigo

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
		SqlDataAdapter1.Fill(AlterarDS1)
		If Not Page.IsPostBack Then
			If Request.QueryString("id") Then
				Cn.Open()
				Dim SqlCmd As New SqlCommand("Select * from tbl_audio Where Id=" + Request.QueryString("id").ToString(), Cn)
				Dim Sdr As SqlDataReader = SqlCmd.ExecuteReader()

				While Sdr.Read()
					'Controles para recuperar as informações 
					editID.Text = Sdr.GetValue(0).ToString()
					editData.Text = Sdr.GetValue(1).ToString()
					editProfessor.Text = Sdr.GetValue(4).ToString()
					editDisciplina.Text = Sdr.GetValue(5).ToString()
					editSerie.Text = Sdr.GetValue(7).ToString()
					editTurma.Text = Sdr.GetValue(8).ToString()
					editCol.Text = Sdr.GetValue(9).ToString()
					editEsc.Text = Sdr.GetValue(10).ToString()
					editConfirma.Text = Sdr.GetValue(11).ToString()
					editIDFita.Text = Sdr.GetValue(12).ToString()
				End While
				Cn.Close()
			End If
		End if
End sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique se o valor que esta no editID.Text esta sendo passado corretamente.

 

Abraços...

Sim o valor esta sendo passado corretamente, a questão é que ao excluir ele procura pela posicao do editid.text e não encontra por isso ocorre o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.