Babai JermenKeller Sasmal Ответов: 1

Новый вызов от моего собственного приложения VB.


Здравствуйте, кодовый проект, помогите мне с этим..

У меня есть datagridview1, который заполняется на form_load следующим образом,

Private Sub Dashboard_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'RevelationdbDataSet.program' table. You can move, or remove it, as needed.
        Me.ProgramTableAdapter.Fill(Me.RevelationdbDataSet.program)
End Sub


и у меня есть несколько навигационных кнопок,таких как first,next, previous,last, как это,
Private Sub NEXT_click(sender As Object, e As EventArgs) Handles NEXT.Click
        ProgramBindingSource.MoveNext()
        Me.BindingContext(Me.RevelationdbDataSet.program).Position += 1
    End Sub

    Private Sub FIRST_Click(sender As Object, e As EventArgs) Handles FIRST.Click
        ProgramBindingSource.MoveFirst()
        Me.BindingContext(Me.RevelationdbDataSet.program).Position = 0
    End Sub

    Private Sub PREVIOUS_Click(sender As Object, e As EventArgs) Handles PREVIOUS.Click
        ProgramBindingSource.MovePrevious()
        Me.BindingContext(Me.RevelationdbDataSet.program).Position -= 1
    End Sub

    Private Sub LAST_Click(sender As Object, e As EventArgs) Handles LAST.Click
        ProgramBindingSource.MoveLast()
        Me.BindingContext(Me.RevelationdbDataSet.program).Position _
        = Me.BindingContext(Me.RevelationdbDataSet.program).Count - 1
    End Sub


Кажется, до сих пор все было хорошо.

Если я добавлю INSERT\DELETE что-то с помощью form2, который обновляет мой datagridview1 следующим образом,
Private Sub updateDGV()
        form1.DataGridView1.DataSource = Nothing
        Dim SDA New SqlDataAdapter
        Dim DS As New DataTable
        Dim bsource As New BindingSource
        OpenConnection()
        Try
            query = "SELECT * from [program]"
            command = New SqlCommand(query, connection)
            SDA.SelectCommand = command
            SDA.Fill(ds)
            bsource.DataSource = ds
            Dashboard.DataGridView1.DataSource = bsource
            SDA.Update(ds)
            connection.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            command.Dispose()
        End Try
    End Sub


Что очень хорошо обновляет мой datagridview, но проблема начинается прямо сейчас....

Первая, следующая, предыдущая и последняя кнопки больше не работают... даже не биндингнавигатор...

как это исправить ?

Любая помощь будет мне очень полезна.

Что я уже пробовал:

попробовал сменить код но безуспешно

1 Ответов

Рейтинг:
12

Wendelius

Похоже, что у вас есть источник привязки, хранящийся в ProgramBindingSource.
Однако в коде вы создаете новый источник привязки bsource и используй это. Таким образом, данные теперь поступают из нового источника привязки, а навигационные кнопки все еще используют старый источник привязки.

Вместо того, чтобы использовать новую переменную, вы должны использовать переменную оригинального источника привязки. Что-то вроде

...
SDA.Fill(ds)
ProgramBindingSource = New BindingSource
ProgramBindingSource.DataSource = ds
Dashboard.DataGridView1.DataSource = ProgramBindingSource
...


Babai JermenKeller Sasmal

я попробую твое решение.. спасибо за ответ и помощь...

Babai JermenKeller Sasmal

Это не работает тот же вопрос..

Wendelius

Есть ли у вас другие переменные или функциональные возможности, которые все еще привязаны к старым данным?

Используя отладчик, при извлечении данных убедитесь, что все соответствующие переменные изменены. Кроме того, когда вы нажимаете кнопку Next, убедитесь, что ProgramBindingSource.Источник данных-это только что полученная таблица данных.