PplWare Mobile

Tutorial C# – ADO.NET

                                    
                                

Este artigo tem mais de um ano


Autor: Pplware


  1. Rascunho says:

    estes artigos devem dar uma trabalheira gigante, por isso é que o site/blog tem tanta qualidade/comunidade!

    continua o bom trabalho.

    http://www.tagravado.com

    • maria says:

      olá… estou a dar os primeiros passos na c# com acesso a base de dados no MySql, usando o mode de acesso desconectado..

      se fosse possivel postar qualquer coisa,a explicar como fazer esta operações:adição, remoção e alteração de dados na base de dados… agradecia a ajuda

      já que me encontro,bastante deprimida…pois os exemplos k encontro são em vb.net 🙁

      espero que postem alguma coisa,
      cumprimentos

      Maria

    • Ricardo says:

      Maria, encontrei algo que talvez te possa ajudar em alguma coisa. No entanto acho que nao aborda o “modo desconectado”, pois não li o tutorial.

      http://www.macoratti.net/08/08/c_mysql1.htm

      Bem, abre o Google e procura algo como isto: “C# with MySQL”, “C# MySQL modo desconectado”. Se perceberes ingles, tenta tambem dar uma busca em ingles, talvez encontres melhores resursos de estudo.

      É so preciso ter paciencia que logo logo encontras algo pela net. Boa sorte,

      Ricardo

  2. Paulo Nunes says:

    @Henrique Graça
    Parabéns pelo excelente tutorial. Para quem não sabe é uma mais valia tremenda e para quem já sabe, uma mais valia tremenda é porque relembra certos conceitos.

    Nunca trabalhei com ADO.NET, mas pelo que percebi, se a BD tiver password de acesso, a mesma é passada na ConnectionString ou no ficheiro com extensão udl com as definições de acesso.
    Qual o grau de segurança (baixo, médio, alto) que o ADO.NET oferece no código compilado para que a password não seja vista de “fora” (por exemplo, com um editor hexadecimal ou mesmo um editor de texto)?
    Eu sei que a segurança é um factor relativo, mas se alguém tiver algum conhecimento nesta área, agradecia.

  3. David says:

    Muito bem sr.Henrique Graça…

    Tou a gostar de ver.

    Este semestre vai ser só 20.

    • Leonel says:

      oi estou iniciando a programar em visual basic 2008.

      a cerca de uma base de dados onde tenha codigo de acesso, eu vi uma materia onde eles geravam um Hasha para os passwords. isso criava uma criptografia para os passwords inrreversiveis.

      procura ver.

  4. Shogun says:

    Boas, mais uma vez ainda n tive tempo para ler nem este artigo nem o anterior como deve ser e com a atencao k merecem embora o anterior ja tenha ido la buscar uma ou duas linhas de codigo para fazer umas cenas k n me lembrava (delegates :P) em relacao a este, a minha sugestao é em vez do ADO.Net usares o Linq em conjunto com o entity model, pareceme ser mais produtivo e mais agradavel de se trabalhar,mas por alguma razao que eu gostava que explicasses escolheste o ADO.Net , por isso n kero tar a falar para o ar sem saber as razoes.Eu nc usei o ADO.Net mas pelo k li por alto, n me agradou mt pelo menos qd comparado com outras solucoes como o linq por exemplo ou o SqlCommand k apenas tens k por a connection string.

    Mais uma vez parabens e continua 😉

  5. Joaquim Almeida says:

    Bom artigo. Continuem, mesmo que todos nós tenhamos diferentes formas de ver/fazer/programar as coisas, encontra-se sempre boas dicas que melhoram ou recordam alguns itens já são feitos como rotinas…

  6. Henrique Graça says:

    @Shogun
    Devido aos teus comentários já me fui informar sobre o entity model 🙂 .
    E houve uma coisa que não gostei e é o que muita gente diz, é uma framework espectacular mas ainda não está muito eficaz, parece que regredimos e porquê? Porque ainda não suporta o ambiente desconectado, ou seja, temos de estar sempre a fazer chamadas á BD. Eu sinceramente prefiro TypedDatasets (aqueles que arrastamos para o visual studio) e é como se fossem objectos. Quanto ao linq adoro. E pronto vai ser isso que irei falar no próximo tutorial.

    @Rascunho
    Realmente dá trabalho mas depois de ler os comentários, passa logo. 🙂

  7. Shogun says:

    @Henrique

    Sim ainda tem alguns bugs, mas n percebi o que quiseste dizer com ambiente desconectado, eu posso dizer que ja a uns meses que trabalho com o entity model e so n uso para fazer ligaca a base de dados kd o proprio link n me permite fazer as querys que eu quero e ai sim, vai a bruta com SqlCommand 😛 mas de resto em termos produtivos e fantastico, eu disse que iria fazer um webcast de introducao ao entity model para aqui, a ver se para a semana consigo apresentar alguma coisa.

  8. Henrique Graça says:

    @Shogun
    Só se eu estou a cometer alguma gafe. O que eu quero dizer com ambiente desconectado é o funcionamento para que foram criados os datasets para serem uma copia em memoria da BD, ou seja podes perder a ligação com a BD e mesmo assim adicionar rows, tabelas, fazer querys aos dados, etc. Depois de voltar a ter ligação á bd podes gravar tudo para lá. Isso é possivel com o entity model ou estamos sempre a fazer querys á BD e se não estivermos ligados dá erro?
    Venha de lá esse video vou ver de certeza.

  9. Shogun says:

    AH ok, sim tens que tar sp a fazer querys á BD, mas vou explorar isso a ver se consigo manter um ambiente desconectado, embora possas enviar tudo para memoria na mesma, depois a forma como acedes as cenas é k é diferente axo eu, mas heide experimentar, de kk forma n entendo a vantagem de poderes estar desconectado da bd, imagina que existe uma falha de luz a meio da operacao e k ja fizeste mt operacoes referentes a BD? perdes tudo, como nc trabalhei dessa forma n consigo ver vantagens, mas acredito que haja, com em tudo existem sp vantagens/desvantagens em kk solucao.Olha eu estava a pensar era fazer um webcast tipo akeles da microsoft, ao vivo, o k axas? podiamos organizar isso num fds kk e anunciar aki, n sei se a aceitacao seria grande mas nd como os responsaveis do pplware fazerem ai uma votacaozita 😛 senao faco msm stand-alone.

  10. Henrique Graça says:

    As maiores vantagens são a menor sobrecarga da BD a rapidez e o facto de poderes cancelar operações. Imagina um ecrã em que tens uma lista de clientes e queres adicionar um cliente. O que fazes? O caso mais prático e simples será criar uma nova row num dataset em memoria, se quiseres cancelar/anular essa operação bastava carregar no cancelar do ecrã e nenhuma alteração é feita na BD, mas adicionaste tudo certinho com os tipos de dados e tudo numa BD “Virtual”.
    Ao vivo julgo que será complicado não sei como funcionaria e se o servidor aguentava as pessoas que estariam a ver :). Mas era uma ideia porreira, com perguntas dos utilizadores e tudo. Só mesmo o Vitor saberá se é possivel ou não.

  11. Henrique Graça says:

    @Paulo Nunes
    A segurança não é nada relativo, é muito importante principalmente no que toca a dados, e sim tens razão a password pode ou não ser passada na ConnectionString.
    Existem algumas formas de proteger a ConnectionString:
    – Hardcoded no código (Pouco seguro)
    – Usando na string a flag Integrated Security=true (que vai utilizar as credenciais do utilizador windows para aceder á bd só SQL)
    – O melhor mesmo será guardar a ligação no app.config e encriptar com os metodos que o objecto Configuration nos fornece, podemos usar dois providers para as encriptações o “DataProtectionConfigurationProvider” e o “RSAProtectedConfigurationProvider”.

    Num post futuro irei falar sobre segurança.

    • José Silva says:

      @Henrique Graça

      Eu tenho uma base de dados em access para os funcionários de uma empresa fazerem as participações de risco. No access embora não tenha aprendido nada de programação, consigo desenrascar-me e fiz essa pequena base de dados. Fiquei interessado nestes vossos artigos e tentei ver se conseguia fazer em c#. Um ou outro comando já consegui fazer, mas colocar toda a base de dados a funcionar não está fácil. Gostaria de saber se seria possível enviar a base de dados para me poder dar uma ideia de como fazê-lo.

      Será possível?

      Grato pela atenção

  12. José Romão says:

    @Henrique Graça e Paulo Nunes

    O henrique tem razão na forma como esta a dizer para protejeres a tua password.. o “menos seguro” é sim meteres a passa hardcoded na connection string..

    mas um problema mto maior levanta-se aqui relativamente a segurançao que é o ofuscator .. se nao protegeres bem o codigo esteja a pass onde estiver no codigo consegue-se achar com as ferramentas certas em menos de 1 min. 😉 o Henrique sabe do que estou a falar….

  13. Nuno says:

    @Henrique Graça

    O que achas de fazer um programa em C# para iniciar um WordPress Portable?

  14. Luís Filipe says:

    Muitos parabéns, pelo tutorial;
    O ano passado numa das minha cadeiras tive de desenvolver um sistema de gestão semelhante, interligado com o Second Life…

  15. Ecrã Azul says:

    Como posso adicionar um separador (tab) entre os 2 existentes? Já tentei mas só acrescenta no fim… e não o consigo arrastar para onde quero.

  16. Ricardo says:

    @ Ecrã Azul, fazer isso é muito simples, por isso vou tentar ser o mais directo e possível:

    Muito bem, tens a TabControl na form, certo? (ao inserires uma nova o Visual Studio já a coloca no form com 2 tabs (ou abas como preferires). Tudo ok, agora fazes o seguinte: right-mouse click onde diz “tabPage1” e selecionas a opção, no pop-up menu, “Properties” (Propriedades). Daí, se reparares onde tens a janela de propriedades (Properties window) aparece selecionada a propriedade chamada “TabPages” em que o seu valor é uma Collection (Coleção). Ok, carrega no botãozinho com os três pontinhos e daí abre um janela “TabPage Collection Editor”. Se reparares, na lista do lado esquerdo aparecem as páginas que tens no Separador inserido no Form. Pronto aqui fazes o gerenciamento da TabControl (as tais tabs).
    Muito bem, agora, deves ver 2 buttons (Add e Remove, Adicionar e Remover respectivamente). Carrega lá em Add. Inseriu uma tab chamada TabPage3 ou algo semelhante? De certeza que sim.

    Ok, cá vai o que querias – seleciona na lista do lado esquerdo a TabPage3, depois, mesmo ao lado da lista vês 2 buttons, um com uma setinha para cima e outro com setinha para baixo). Pronto, carregas nas setinhas e deslocas as páginas para ficarem nos lugares que tu queres. Tal como perguntaste, para colocares uma terceira página no meio, carregas na tal TabPage3 e carregas no button com a setinha para cima… e voilá, está pronto.

    Era bom que estudasses essas janelinha, pois existem outras semelhantes para ListBox’s, ComboBox, etc! bom estudo

  17. Ricardo says:

    Peço desculpas por não acompanhar com screenshots, mas não existe qualquer opção para tal. Pode ser que o Henrique Graça possa fazer um post breve a explicar o objectivo de uma window Collection Editor, pois ela evita ter de se usar código para controlar o objecto. No entanto, o código é bastante útil para fazer mudanças nos objectos em run-time.

    Bem, espero ter sido claro na minha resposta. Apenas tentei ajudar 🙂
    Boa sorte para o Pplware.

  18. Ecrã Azul says:

    @Ricardo

    Obrigadão. Das ListBox e comboBox eu sei que é assim (embora eu use mais a preencher dinâmicamente pela base de dados. Não me lembrei que as tabs também pudessem ser. Ás vezes um gajo não se lembra das coisas mais óbvias e anda à procura de soluções mais complicadas…

  19. Ecrã Azul says:

    @Ricardo

    E por mim não preciso dos screenshots… se tivesses falado só nas colecctions eu tinha lá ido ter logo. No entanto fica a explicação mais detalhada para alguém que necessite.

  20. Ricardo says:

    numa boa, pensei que pouco percebias da interface do programa. É como dizes, para aqueles que precisem de uma info mais detalhada, assim podem “brincar” com o tutorial do Henrique e implementar coisas novas. É que tanto existem pessoas que já “sabem” como as que “não sabem” que seguem vários tutoriais disponíveis 🙂

    Fico contente por ter ajudado, Abraço

  21. João Ninguem says:

    Quando eu vou fazer o download do Ado net ele da ERRO!Alguém me ajude por favor…

  22. maria says:

    um grande abraço a esta equipa fastastica…

    venho apelar para postarem mais coisas sobre ADO.net e c#

    como criar uma base de dados, qual a importancia das chaves secundárias…

    como fazer a ligação á base de dados utilizando C# e mysql

    seria umas boas entradas

    cumprimentos

  23. anderson says:

    Parabéns, estou estudando c# agora pouco e tenho encontrado aqui, uma boa fonte de informação, foi muito massa a ideia dos tutorias sobre C# tendo em vista que não é tão facio de encontrar em PT os artigos bons!

    Se vc puder manda teu e-mail pra mim tirar algumas duvidas!

  24. Fernando says:

    Saudações

    Apesar de ser uma dúvida fora de tempo, gostaria de saber onde é que o objecto DsDespesa é declarado.

    Obrigado

  25. Jackson says:

    cara, sensacional, salva de palmas, continue assim, li tudinho, muito bem explicado, muito bom o portugues e a metodologia, qualidade 100%

Deixe um comentário

O seu endereço de email não será publicado.

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. A administração deste site reserva-se, desde já, no direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.