1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

(VB 2005) Guardar Dados na base dados através dum botão

Discussão em 'Programação' iniciada por hihugo, 4 de Outubro de 2007. (Respostas: 31; Visualizações: 6126)

  1. Eu estou a fazer um projecto em vb 2005 e não consigo fazer a ligação da base dados ao botão para guardar os dados ou alterar ou até mesmo eliminar...

    Se alguém me poder ajudar agradeço...
     
  2. cabiros

    cabiros Power Member

    E que tal no load do form criar a ligação através de um dataset (por exemplo) e depois no botão meter o insert, ou update dos dados nesse mesmo dataset.

    Para o botão saber o que executar basta criar uma variável global (booleana por exemplo, caso seja só gravar e alterar) para permitir identificar o caso.
     
  3. estrafalhote

    estrafalhote Power Member

    [FONT=&quot]inserir dados na BD (Access 2003) atravéz da command Button[/FONT]


    [FONT=&quot]em primeiro lugar tens de ligar a base de dados ao programa atravez de um wizard que existe no visual studio 2005, isto se o utilizares, depois é só seguires estes passos que acho que estão mais ou menos bem explicados. eu no ano passado também fiz um programa com base nisso e foi isto que usei e funcionou às mil maravilhas :cool:.[/FONT]
    [FONT=&quot]aqui até encontras código para as messagebox caso as queiras usar
    [/FONT]





    [FONT=&quot]Dim[/FONT][FONT=&quot] dbConn As OleDb.OleDbConnection = New OleDb.OleDbConnection()[/FONT]

    Na linha de código a cima é declarado um objecto do tipo oledbconection, que vai permitir depois estabelecer uma conexão à base de dados




    Código:
    [FONT=&quot]dbConn.ConnectionString = [COLOR=maroon]"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bd pap.mdb;"[/COLOR][/FONT]


    [FONT=&quot]
    [/FONT]

    String de conexão utilizada para aceder à base de dados, utilizando o provider oledb.

    Código:
    [COLOR=blue][FONT=&quot]Dim[/FONT][/COLOR][FONT=&quot] strQuery [COLOR=blue]As[/COLOR] [COLOR=blue]String[/COLOR] = [COLOR=maroon]"INSERT INTO produtos (nome, quantidadestock, preco, caracteristicas, idcategoria, idfornecedor) VALUES(@nome, @quantidadestock, @preco, @caracteristicas, @idcategoria, @idfornecedor)"[/COLOR][/FONT]
       [COLOR=maroon][/COLOR]
       [COLOR=blue][FONT=&quot]Dim[/FONT][/COLOR][FONT=&quot] dbCmd [COLOR=blue]As[/COLOR] OleDb.OleDbCommand = [COLOR=blue]New[/COLOR] OleDb.OleDbCommand(strQuery, dbConn)[/FONT]
       
     
    O que se pretende fazer, é declarar uma variável do tipo String, onde é colocada a strind do comando SQL e de seguida será criado um objecto do tipo oledbcommand que irá permitir executar o comando SQL.

    Código:
    [FONT=&quot]dbCmd.Parameters.AddWithValue([COLOR=maroon]"@nome"[/COLOR], txtnome.Text)[/FONT]
       [FONT=&quot]            dbCmd.Parameters.AddWithValue([COLOR=maroon]"@quantidadestock"[/COLOR], txtquantidadestock.Text)[/FONT]
       [FONT=&quot]dbCmd.Parameters.AddWithValue([COLOR=maroon]"@preco"[/COLOR], txtpreco.Text)[/FONT]
       [FONT=&quot]            dbCmd.Parameters.AddWithValue([COLOR=maroon]"@caracteristicas"[/COLOR], txtcaracteristicas.Text)[/FONT]
       [FONT=&quot]            dbCmd.Parameters.AddWithValue([COLOR=maroon]"@idcategoria"[/COLOR], cbCategoria.SelectedValue)[/FONT]
       [FONT=&quot]            dbCmd.Parameters.AddWithValue([COLOR=maroon]"@idfornecedores"[/COLOR], cbFornecedor.SelectedValue)[/FONT]
    



    Parte dos parametros, ou seja, é aqui que se faz a correspondência entre as TextBox ou Combobox e os respectivos campos na tabela onde os dados são inseridos.
    Código:
    [FONT=&quot]dbConn.Open() [/FONT]
       [FONT=&quot]dbCmd.ExecuteNonQuery() [/FONT]
       [FONT=&quot]dbCmd = [COLOR=blue]Nothing[/COLOR][/FONT]
       [COLOR=blue][/COLOR]
     
    Na primeira linha abre-se a ligaçao com a base de dados e depois executa se o comando

    Código:
    [FONT=&quot]MessageBox.Show([COLOR=maroon]"Inseriu"[/COLOR], [COLOR=maroon]"Inseriu"[/COLOR], MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)[/FONT]
       
       [FONT=&quot]        [COLOR=blue]Catch[/COLOR] ex [COLOR=blue]As[/COLOR] Exception[/FONT]
       [FONT=&quot]            MessageBox.Show(ex.Message, [COLOR=maroon]"Erro"[/COLOR], MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)[/FONT]
       
     
    Parte final da inserção de dados ou seja, é quando aparecem as mensagens de estado da operação se tudo estiver conforme o predefinido aparecerá uma mensagem a dizer inseriu, caso contrário, aparecerá uma a dizer erro sinal de que algo correu mal.


    espero ter ajudado!

    qualuer duvida ou erro é só dizer
     
  4. maps_5

    maps_5 Power Member

    Gostei do 'tutorial'...
    estou a comecar em VB.net...
    usei VB6, e agora estou a experimentar o .net...
    andei a procura de como fazer a ligacao a base de dados...
    e finalmente encontrei...
    mas o que queria perguntar era se podes postar como se faz o inverso do que esta aqui...
    como por informacao da base de dados em text boxes ou combobox ou em listboxes...
    agradeco desde ja
    cumpz
     
  5. estrafalhote

    estrafalhote Power Member


    com combo box é facil, mas depende daquilo que queres fazer.
    agora para mostares realmente os dados das tabelas é melhor usares uma grid view.

    se me disseres o que queres fazer com as combobox e por ai fora posso ver se te posso ajudar ou nao
     
  6. maps_5

    maps_5 Power Member

    por enquanto ainda nao quero usar combobox...
    mas queria ficar com a informacao de como usar...
    mas o que quero agora é mesmo saber como colocar a informacao em textboxes !!
    agradeco desde ja
    cumpz
     
  7. estrafalhote

    estrafalhote Power Member

    explica-te melhor para ver entendo
     
  8. maps_5

    maps_5 Power Member

    mostrar a informacao, que esta numa base de dados access, em textboxes.
    por exemplo, a tabela tem 4 campos, entao terei 4 textboxes com a informacao de cada campo....
    e ja agora, podias tambem dizer como usar a datagrid!!
    agradeco desde ja
    cumpz
     
  9. estrafalhote

    estrafalhote Power Member

    1-Mostrar os dados na grid view

    em primeiro lugar como é obvio tens de "ligar" a base de dados ao programa, eu utilizei o [FONT=&quot]Data Source Configuration Wizard, depois de fazeres todos os passos que aquilo te pede, aquilo cria um dataset para cada tabela da base de dados depois daí é facil é só ligares o data set á grid view e para isso é fácil, na grid view que inseris-te no form ela tem uma pequena seta no canto superior direito e é so carregares aí que depois escolhes a tabela do dataset que queres mostrar na grid view.

    2-mostrar dados em combo box

    inseres a combo box como é obvio e depois na mesma seta que falei da grid view fazes isto :

    [​IMG]
    [/FONT]

    depois é so escolheres o que queres mostrar lá e depois daí fazes o que queres aos valores.

    agora quanto ás text box, não sei fazer e não vejo qual a ultilidade disso.


    P.S é provavel que estejam aqui coisas mal ou mal explicadas, mas é normal pois nunca tive aulas de nada disto e tudo o que sei foi a ver foruns tipo este
     
  10. maps_5

    maps_5 Power Member

    ok
    ja deste uma enorme ajuda...
    obrigadao...
    mas ha-de dar para mostrar tambem em textboxes, porque se tu podes adicionar data a base de dados usando informcao que e escrita numa textbox, tambem ha-de ser possivel mostrar a informacao em textbox...
    mas agradeco novamente porque foi uma grande ajuda...
    isto ja me vai dar jeito...
    tenho de tentar amanha...
    cumpz


    EDIT:
    a ligacao entre um projecto de VB.net com access 2007 é possivel ???
     
    Última edição: 26 de Outubro de 2007
  11. estrafalhote

    estrafalhote Power Member

    sempre ás ordens :x2:
     
  12. maps_5

    maps_5 Power Member

    e quanto a esta pergunta?
    sabes alguma coisa??
     
  13. estrafalhote

    estrafalhote Power Member

    provavelmente terás de converter para access 2003, porque para usares bases de dados criadas em access 2003 em VB6 tens de converter para access 97, por isso secalhar terá de ser convertida também
     
  14. maps_5

    maps_5 Power Member


    ok...
    terei de tentar ...
    eu nao estou a conseguir descobrir qual o wizard que estavas a falar!!!
     
  15. estrafalhote

    estrafalhote Power Member


    [​IMG]


    depois é só clicares onde diz add new data source e:

    [​IMG]
     
  16. maps_5

    maps_5 Power Member

    eu estou a usar o visual studio 2003, e quando faco o wizard nao me aparece nada po cima da combobox ou da datagrid...
    ou estarei a fazer algo errado??
    cumpz
     
  17. estrafalhote

    estrafalhote Power Member

    experimenta clicar no item pretendido com o rato para ver se aparecem.

    [​IMG]
     
  18. maps_5

    maps_5 Power Member

    eu apercebi-me quais eram as setas de que estavas a falar...
    mas a mim nao me aparecem...
    sera por estar a usar o 2003??
    cumpz
     
  19. estrafalhote

    estrafalhote Power Member


    pois não sei nunca usei o 2003 sempre usei o 2005, isso é uma questão de investigares.
     
  20. maps_5

    maps_5 Power Member

    boas malta...
    mais uma vez recorro ao forum para tentar esclarecer uma duvida...
    quando eu ligo um programa a uma base de dados (Access e VS2005), caso eu faca alguma alteracao à base de dados, terei de voltar a fazer a ligacao, ou aquilo actualiza automaticamente??
    espero k me tenha feito entender..
    aguardo dicas
    cumpz
     

Partilhar esta Página