Galera,
Ao atualizar o grid através do evento RowUpdating, a grid atualiza todas as linhas ao invés de atualizar somente a que eu alterei.
Como faço para alterar apenas uma linha?
Minha função:
Public Function _cmdSelect2011() As DataTable
Dim envioEmail As New Modulo
Try
Dim dt As DataTable = Nothing
Dim ConString As String = ConfigurationManager.AppSettings("dbLocal")
Using DBCon As New SqlConnection(ConString)
Dim cmd As String = "SELECT CREDOR, OUTUBRO, NOVEMBRO, DEZEMBRO FROM tbl_dividas2011"
DBCon.Open()
dt = New DataTable
Using da As SqlDataAdapter = New SqlDataAdapter(cmd, DBCon)
da.Fill(dt)
End Using
End Using
Return dt
Catch ex As Exception
envioEmail.Enviar("Erro na função _cmdSelect2011 da Classe ComandosSQL", ex)
End Try
End Function
E o método que eu crio o update:
Protected Sub gvContas_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles gvContas.RowUpdating
Dim cmd As New ComandosSQL
Dim dt As DataTable = Nothing
If rblAno.SelectedValue = "0" Then
Dim txtCredor, txtOut, txtNov, txtDez As TextBox
Select Case ddlMes.SelectedValue
Case "0"
txtCredor = gvContas.Rows(e.RowIndex).Cells(1).Controls(0)
txtOut = gvContas.Rows(e.RowIndex).Cells(2).Controls(0)
txtNov = gvContas.Rows(e.RowIndex).Cells(3).Controls(0)
txtDez = gvContas.Rows(e.RowIndex).Cells(4).Controls(0)
dt = cmd._cmdUpdate2011(txtCredor.Text, txtOut.Text, txtNov.Text, txtDez.Text)
Case "10"
txtCredor = gvContas.Rows(e.RowIndex).Cells(1).Controls(0)
txtOut = gvContas.Rows(e.RowIndex).Cells(2).Controls(0)
dt = cmd._cmdUpdate2011(txtCredor.Text, txtOut.Text)
Case "11"
txtCredor = gvContas.Rows(e.RowIndex).Cells(1).Controls(0)
txtNov = gvContas.Rows(e.RowIndex).Cells(2).Controls(0)
dt = cmd._cmdUpdate2011(txtCredor.Text, "", txtNov.Text)
Case "12"
txtCredor = gvContas.Rows(e.RowIndex).Cells(1).Controls(0)
txtDez = gvContas.Rows(e.RowIndex).Cells(2).Controls(0)
dt = cmd._cmdUpdate2011(txtCredor.Text, "", "", txtDez.Text)
End Select