Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
rjsma

Botoes da binding navigator[resolvido]

Recommended Posts

rjsma

boas

Estou a tentar fazer os botões da binding navigator, já consegui fazer quase todos mas só não estou a conseguir fazer o botão do gravar.

Pensava que era assim

Me.AgendaBindingSource.EndEdit()

abraço

:)

Share this post


Link to post
Share on other sites
bioshock

Depois desse código:

Me.AgendaTableAdapter.Update(Me.BasedeDadosDataSet.Agenda)

Share this post


Link to post
Share on other sites
rjsma

era mesmo isso que faltava.Agora descobri que o meu botao para apagar os dados tambem nao funciona.

tenho assim

Me.AgendaBindingSource.remove

neste caso tambem vou de acrescentar o mesmo codigo para o botao do gravar?

abraço

:)

Share this post


Link to post
Share on other sites
bioshock

Queres eliminar o registo que está seleccionado?

Me.AgendaBindingSource.RemoveCurrent()

Share this post


Link to post
Share on other sites
rjsma

era isso, eliminar o registo que está seleccionado.Mas tipo tenho 2 forms uma para fazer o registo dos dados e outro para mostrar os dados em textboxs.Na form para mostrar os dados tenho la um botao para editar os dados ja gravados e queria que ele abrisse a form para registar os dados com as textboxs preenchidas com os dados da pessoa.Sabes como posso fazer isto?

Fui claro ou está um bocado confuso?  :P

abraço

:)

Share this post


Link to post
Share on other sites
rjsma

mas eu nao quero um id especifico mas sim que ele editasse o id que estivesse aberto

Share this post


Link to post
Share on other sites
bioshock

E foi o que eu disse.

Esse ID deve estar numa textbox, senão tiver, outro dado qualquer vai estar, portanto fazes um SELECT a um desses dados.

Algo como:

SELECT xpto FROM tabela WHERE ID = " & textbox1.text

Share this post


Link to post
Share on other sites
bioshock

Se tens o nome numa textbox (por exemplo) podes procurar pelo nome. Contudo, uma query por ID (integer)  é muito mais rápido do que uma query por String.

Share this post


Link to post
Share on other sites
rjsma

fiz uma coisa assim e mesmo assim diz que o end of statement of expected

 SELECT nome FROM agenda WHERE Nome = " & textbox1.text"
        End Select

Share this post


Link to post
Share on other sites
ByMySlf

O que faz esse End Select aí?

O select...

 SELECT nome FROM agenda WHERE Nome = " & textbox1.text"

...é uma query à base de dados que nada tem a ver com um Select...Case Statement.

Share this post


Link to post
Share on other sites
rjsma

O que faz esse End Select aí?

O select...

 SELECT nome FROM agenda WHERE Nome = " & textbox1.text"

...é uma query à base de dados que nada tem a ver com um Select...Case Statement.

assim tambem não dá, como não estava a dar experimentei por o end select mas parece que não tem nada a ver para esta situação

Share this post


Link to post
Share on other sites
bioshock

O que faz esse End Select aí?

O select...

 SELECT nome FROM agenda WHERE Nome = " & textbox1.text"

...é uma query à base de dados que nada tem a ver com um Select...Case Statement.

Também é por causa disso, mas não só.

O "End of statement of expected" também deriva devido ao código que tens, em vez de:

SELECT nome FROM agenda WHERE Nome = " & textbox1.text"

Tens de ter:

 SELECT nome FROM agenda WHERE Nome = " & textbox1.text & ""

Share this post


Link to post
Share on other sites
rjsma

assim tambem não dá, eu utilizei o select end por causa tambem estava a a dar este erro

'Select Case' must end with a matching 'End Select'.

Share this post


Link to post
Share on other sites
bioshock

assim tambem não dá, eu utilizei o select end por causa tambem estava a a dar este erro

'Select Case' must end with a matching 'End Select'.

O SELECT que eu te falei, é uma instrução do SQL.

Tu precisas de uma ligação (tudo via código) à base de dados, precisas de criar uma query à base de dados (Aquele SELECT que eu te disse), precisas de estipular os dados a serem mostrados...

Procura no google, encontras montes de tutoriais. Qualquer coisa apita!  :P

Share this post


Link to post
Share on other sites
rjsma

ok.Vou procurar no google, até creio que já vi uma um exemplo algures na net

abraço

:P

Share this post


Link to post
Share on other sites
rjsma

bom exemplo,isto é para uma base de dados sql ou tenho de adaptar para access?Como na parte da ligação da base de dados está la isto 'C:\myDatabase.mdf'penso que é a mesma coisa para a bd access, estou certo?

Share this post


Link to post
Share on other sites
bioshock

Não, para o Access é:

Dim BaseDeDados As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & My.Application.Info.DirectoryPath & "\BaseDados.mdb';Persist Security Info=True;"

Btw, para isto funcionar, tens de ter a tua BD na pasta debug da aplicação.

Share this post


Link to post
Share on other sites
rjsma

já percebi e para o resto do codigo vou ter de fazer o mesmo, passar para access?

Share this post


Link to post
Share on other sites
bioshock

Sim, em cima tens de fazer o imports do access, neste caso é: Imports system.data.OleDb

Depois nas conexões etc, em vez de SqlConnection é OleDbConnection

Share this post


Link to post
Share on other sites
rjsma

cá estou eu outra vez :P

Já passei quase tudo para access mas continua haver aqui alguma partes a não bater certo, consultei este topico onde tem um exemplo para o access e fui por aqui que me guiei

http://www.portugal-a-programar.pt/index.php?showtopic=21684

' Texto de ligação à base de dados
        Dim connstring As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & My.Application.Info.DirectoryPath & "\Agenda.mdb';Persist Security Info=True;"

        ' Selecção à  tabela "MyTable" em que o campo "username"
        ' será passado através de parâmetros posteriormente
        Dim SQL As String = "SELECT * FROM agenda WHERE nome = @username"

        ' Cria uma nova ligação à base de dados
        Dim connection As New OleDbConnection(ConnString)

        ' Criação do comando indicando a instrução e a ligação
        Dim command As New OleDbConnection(OleDb, connection)

        ' Indicação dos parâmetros da selecção
        command.Parameters.Add("@username", OleDbType.VarChar).Value = "agenda"

        ' Abre a ligação
        connection.Open()

        ' Executa o comando colocando num SqlDataReader os resultados
        Dim reader As OleDblDataReader = command.ExecuteReader()

        ' Caso existam rows (linhas)
        If reader.HasRows Then

            ' Executa um ciclo nas linhas existentes mostrando o campo “username”
            While reader.Read()
                Debug.WriteLine(reader.Item("username"))
            End While

        End If

        ' Fecha a ligação e limpa as variáveis
        connection.Close()
        connection = Nothing
        command = Nothing
    End Sub

As seguintes partes do codigo são os que estão a dar-me problemas mas não sei porque, eu já passei para o access

' Criação do comando indicando a instrução e a ligação
        Dim command As New OleDbConnection(OleDb, connection)

' Indicação dos parâmetros da selecção
        command.Parameters.Add("@username", OleDbType.VarChar).Value = "agenda"

' Executa o comando colocando num SqlDataReader os resultados
        Dim reader As OleDblDataReader = command.ExecuteReader()

Para ser sincero só consegui perceber só metade do codigo pois parece haver partes que que não são necessários neste caso. :)

Share this post


Link to post
Share on other sites

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
Sign in to follow this  

×

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.