Jump to content

Recommended Posts

Posted

Boas pessoal gostaria de saber se é possivel ir para o registo seguinte e anterior dos registos de uma tabela, sei que atraves do wizard do Visual basic ele usa o objecto bindingnavigator, mas eu queria fazer tudo por código.

Posted

Tens que criar um objecto BindingSource depois é só trabalhar com código.

Exemplo

Dim bindNav As New BindingSource

Dim coneccao As New OleDbConnection(frmMain.strConn)
Dim SQL As String = "SELECT * FROM tab_genero"
Dim comando As New OleDbCommand(SQL, coneccao)

Dim dtGeneroAdaptor As New OleDbDataAdapter(comando)
Dim dtGenero As New DataTable

dtGeneroAdaptor.Fill(dtGenero)
bindNav.DataSource = dtGenero

'aqui defines os bindings de todos os objectos que precisas
Me.txtIDGenero.DataBindings.Add("text", Me.bindNav, "ID_Genero", True)
Me.txtGenero.DataBindings.Add("text", Me.bindNav, "Genero", True)

Para moveres para o registo seguinte usas Me.bindNav.MoveNext() e por aí fora. Agora é só brincares um bocado com ele 😛

Acho que o código acima está correcto. Pelo menos funciona  🙂

Posted

Tens que criar um objecto BindingSource depois é só trabalhar com código.

Exemplo

Dim bindNav As New BindingSource

Dim coneccao As New OleDbConnection(frmMain.strConn)
Dim SQL As String = "SELECT * FROM tab_genero"
Dim comando As New OleDbCommand(SQL, coneccao)

Dim dtGeneroAdaptor As New OleDbDataAdapter(comando)
Dim dtGenero As New DataTable

dtGeneroAdaptor.Fill(dtGenero)
bindNav.DataSource = dtGenero

'aqui defines os bindings de todos os objectos que precisas
Me.txtIDGenero.DataBindings.Add("text", Me.bindNav, "ID_Genero", True)
Me.txtGenero.DataBindings.Add("text", Me.bindNav, "Genero", True)

Para moveres para o registo seguinte usas Me.bindNav.MoveNext() e por aí fora. Agora é só brincares um bocado com ele 😛

Acho que o código acima está correcto. Pelo menos funciona  🙂

este codigo é para meter no objecto BindingSource? ou nos botões?

Posted

e para meteres no Load ou onde quer que carregues os dados.

tens aqui o exemplo completo lol  🙂

Imports System.Data.OleDb
Public Class frmGenero
    Dim bindNav As BindingSource

    Private Sub frmGenero_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim coneccao As New OleDbConnection(frmMain.strConn)
        Dim SQL As String = "SELECT * FROM tab_genero"
        Dim comando As New OleDbCommand(SQL, coneccao)

        Dim dtGeneroAdaptor As New OleDbDataAdapter(comando)
        Dim dtGenero As New DataTable

        bindNav = New BindingSource

        dtGeneroAdaptor.Fill(dtGenero)
        bindNav.DataSource = dtGenero

        Me.txtIDGenero.DataBindings.Add("text", Me.bindNav, "ID_Genero", True)
        Me.txtGenero.DataBindings.Add("text", Me.bindNav, "Genero", True)
        Me.lblRegActual.Text = Me.bindNav.CurrencyManager.Position + 1 & "/" & Me.bindNav.CurrencyManager.Count

    End Sub

    Private Sub btnRegSeguinte_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRegSeguinte.Click
        Me.bindNav.MoveNext()
        Me.lblRegActual.Text = Me.bindNav.CurrencyManager.Position + 1 & "/" & Me.bindNav.CurrencyManager.Count
    End Sub

    Private Sub btnRegAnterior_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRegAnterior.Click
        Me.bindNav.MovePrevious()
        Me.lblRegActual.Text = Me.bindNav.CurrencyManager.Position + 1 & "/" & Me.bindNav.CurrencyManager.Count
    End Sub

    Private Sub btnUltimoReg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUltimoReg.Click
        Me.bindNav.MoveLast()
        Me.lblRegActual.Text = Me.bindNav.CurrencyManager.Position + 1 & "/" & Me.bindNav.CurrencyManager.Count
    End Sub

    Private Sub btnPrimeiroReg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrimeiroReg.Click
        Me.bindNav.MoveFirst()
        Me.lblRegActual.Text = Me.bindNav.CurrencyManager.Position + 1 & "/" & Me.bindNav.CurrencyManager.Count
    End Sub
End Class

Espero que te ajude  😛

Posted
    Dim bindNav As New BindingSource
        Dim coneccao As New OleDb.OleDbConnection(Stand.My.Settings.ligacaoBD)


        Dim SQL As String = "SELECT id_processo, matricula FROM compras"
        Dim comando As New OleDbCommand(SQL, coneccao)

        Dim comprasAdaptor As New OleDbDataAdapter(comando)
        Dim compras As New DataTable

        comprasAdaptor.Fill(compras)
        bindNav.DataSource = compras

        'aqui defines os bindings de todos os objectos que precisas
        Me.id_compraTextBox.DataBindings.Add("text", Me.BindingSource1, "ID_PROCESSO", True)
        Me.matriculatextbox.DataBindings.Add("text", Me.BindingSource1, "matricula", True)
        Me.BindingSource1.MoveNext()
Posted

tu estas a definir o bindingSource com o nome bindNav depois estás a usar o Me.BindingSource1 muda lá isso a ver se deixa de dar erro 😉

erro:

Não é possível vincular à propriedade ou coluna matricula na DataSource.

Nome do parâmetro: dataMember

Posted

já mudas-te de Me.BindingSource1 para bindNav em todo o código?

sim, olha nao sei se é de referir mas eu nao tenho a ligação á BD feita pelo wizard, ou seja tenho a ligação no load do form.. com comandos sql que vao buscar os dados á base de dados e assim apresenta-os nas minhas caixas de texto... será disso?

Posted

Eu no exemplo que te dei, também crio totalmente as ligações por código, repara bem 🙂

Mesmo depois de mudares o bindingSource continua a dar aquele erro?

erro:

Não é possível vincular à propriedade ou coluna matricula na DataSource.

Nome do parâmetro: dataMember

Posted

Eu no exemplo que te dei, também crio totalmente as ligações por código, repara bem 🙂

Mesmo depois de mudares o bindingSource continua a dar aquele erro?

sim..

Não é possível vincular à propriedade ou coluna ID_PROCESSO na DataSource.

Nome do parâmetro: dataMember

Posted

boas, consegui "reproduzir" esse erro, acho eu lol... e só me aconteceu quando mudei o nome da coluna.

Tens a certeza que ID_PROCESSO é o nome do campo/coluna?

por exemplo eu se mudar

Me.txtIDGenero.DataBindings.Add("text", Me.bindNav, "ID_Genero", True)

para

Me.txtIDGenero.DataBindings.Add("text", Me.bindNav, "ID", True)

dá-me o mesmo tipo de erro que a ti.

Certifica-te que tens os nomes escritos correctamente.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.