Cadastro de Clientes Em C# Parte 1 e 2 e 3

  • Published on
    30-Jun-2015

  • View
    7.997

  • Download
    1

Embed Size (px)

Transcript

<p>Cudustro de Clientes em C# osundo conceitos de AO.NIT - Purte 1 Veja Nesta Quick Iremos criar neste artigo um Cadastro simples de Clientes em Windows Forms usando C# e os conceitos de ADO.NET, como SqlConnection e SqlCommand. Publicidade Ola pessoal, irei criar neste artigo um Cadastro simples de Clientes em Windows Forms usando C# e os conceitos de ADO.NET, como SqlConnection e SqlCommand. Com excecao da criacao do banco e das tabelas, todo o resto sera via cdigo, desde a criacao dos mtodos de acesso aos dados at os mtodos de inclusao, exclusao, consulta e atualizacao dos dados. Acompanhem: Comece criando um novo projeto do tipo Windows Forms em C#. D o nome de CadastrodeClientes e clique em OK. Agora abra o Server Explorer (CTRL + W + L), clique com o botao direito em cima de Data Connections e clique em Create New SOL Server Database. Em Server Name, escolha o nome do seu servidor do SOL, em Log on the Server, deixe como Use Windows Authentication, d o nome de Clientes ao seu DataBase e clique em OK. voc vera que o database foi criado. Expandao, clique com o botao direito em Table e clique em Add New Table. vamos criar a tabela de clientes como exemplo. Crie as tabelas como mostra a imagem acima, e lembrese de deixar a coluna !DCliente como Primary Key, clicando em Set Primary Key no menu acima. Salve a tabela com o nome tbClientes. Lembrese tambm de especificar que a coluna !DCliente !dentity, ou seja identada, tera um nmero prprio, assim nao precisaremos especificalo na hora da insercao dos dados. S alterar a opcao, !s !dentity, como mostra a imagem abaixo: vamos criar esses 8 campos como exemplo, permitindo valores nulos apenas nas duas ltimas colunas. Para entender os conceitos de ADO.NET, de inicio vamos criar no formulario apenas 3 botoes, !nserir, Excluir e Atualizar e fazer as instrucoes SOL via cdigo. Nais a frente faremos a consulta aos dados inseridos por meio do controle DataCridview, do visual Studio. Dito isto, crie 3 botoes no formulario, como mostra a imagem a seguir: Nas propriedades d os nomes, em Name, de btn!nserir, btnExcluir e btnAtualizar. Dentro do cdigo do botao !nserir, sera necessario passar a string de conexao do banco de dados. Dica: para nao ter que digitar a string na mao, abra o Server Explorer, clique com o botao direito no Database Clientes e clique em Properties. Na opcao Connection String, copie e cole a string de conexao para o parametro do SqlConnection, como a imagem nos mostra: Segue abaixo todo o cdigo comentado do botao !nserir: O cdigo foi inteiramente comentado, mais de qualquer forma vou explicar os pontos importantes. Dentro do botao !nserir coloquei um try/catch para capturar algum erro que possa acontecer. Comecei instanciando o SqlConnection, passando a ele a string de conexao, depois instanciei o SqlCommand, atribuindo a ele o SqlConnection. Depois, usei o mtodo CommandText, do SqlCommand, para fazer a instrucao SOL, s que ao invs de passar diretamente os valores dentro dele, eu passei apenas os parametros, como uma forma de seguranca dos dados. Assim minha instrucao SOL fica parametrizada, pelo uso do arroba (@) + o nome da coluna da tabela. Logo aps, passei os valores por meio do mtodo AddWithvalue, pertencente ao mtodo Parameters, do SqlCommand. Nele, que espera dois parametros, que sao os parametros declarados no !NSERT e os valores em si, foram passados os valores das colunas, com excecao da coluna !D, que como Primary Key nao precisa ser passado nenhum valor. Aps isso, abro minha conexao por meio do mtodo Open, uso o ExecuteNonOuery, que perfeito para insercao no banco, ja que a mesma nao nos retorna dados(a usamos tambm para fazer Update e Delete) e fecho a conexao. Apenas para fins didaticos uma breve explicacao dos 4 tipos de execucoes que tenho no SqlCommand: ExecuteNonOuery() - executa uma instrucao que nao retorna dados, por exemplo um !NSERT ou UPDATE. ExecuteReader() - usado para fazemos um SELECT que retorne um DataReader. ExecuteScalar() - usada quando a consulta retorna apenas um valor, que obrigatoriamente a primeira linha da primeira coluna.ExecuteXmlReader() - usada para nos retornar um objeto do tipo Xml Reader. Finalizando nosso cdigo, coloquei um essageBox para informar ao usuario que a insercao funcionou. Salve seu projeto e, antes de compilar, coloque um Breakpoint no comeco do cdigo, como mostra a imagem a seguir: Agora compile e teste linha a linha nosso cdigo. Se tudo foi feito como no exemplo, aparecera a mensagem dizendo que a inclusao foi realizada com sucesso. Para ter certeza, abra o Server Explorer, va ao seu Database, va na Tabela de Clientes, clique com o botao direito em cima dela e clique em Show Table Data. Devera aparecer uma tela como essa: Agora vamos codificar o botao de Excluir. Os conceitos de ADO.NET, sao praticamente os mesmos, s vai mudar a instrucao SOL. Faca o cdigo como abaixo: Como voc pode perceber, muda pouca coisa em relacao aos cdigos do botao de !nserir. Antes de rodalo, insira mais alguns dados na tabela, para que a mesma nao fique sem dados. Salve, compile e teste para ver se tudo saiu Ok. Finalizando, vamos fazer o mtodo referente ao botao Update, que tambm s sera alterado a instrucao SOL, ja que vamos atualizar os dados ja existentes. D dois cliques nele e insira o seguinte cdigo: Neste exemplo alteramos somente o Endereco, Telefone e Email, mais voc pode alterar todos os campos se assim achar necessario. Salve, compile e veja o resultado na sua tabela. Antes do Update: Depois do Update: Com isso, termino aqui a 1 parte de nosso artigo que explora o uso dos conceitos de ADO.NET com C#. Na prxima parte de nosso artigo, iremos usar o controle DataCridview em nosso projeto. Para quem se interessar, disponibilizo o cdigo fonte desse projeto aqui. L!NK: 995u5loaddearquivos.com.brdownloadadas9rodelien9es.rar Abracos. At o prximo artigo! Cudustro de Clientes em C# osundo conceitos de AO.NIT - Purte Veja Nesta Quick na 2 parte de nosso artigo, iremos trabalhar com o controle DataGridView. Cl pessoal volLo com a serle de arLlaos usando os concelLos bslcos de AuCnL1 nesLa parLe lremos cusLomlzar nosso formulrlo de CadasLro de CllenLes adlclonaremos LexLbox e usaremos o conLrole DataGr|dV|ew do vlsual SLudlo Conflram Abra seu pro[eLo no vS vamos cusLomlzar nosso formulrlo Adlclone alauns LexLboxes relaLlvos aos campos de nossa Labela de CllenLes e alLere os boLes [ exlsLenLes no form como mosLra a lmaaem abalxo !lf !vml!endlf Asslm nosso form flcar com um vlsual mals apresenLvel e lnLulLlvo Como vocs podem perceber coloquel os campos referenLes as colunas de nossa Labela com exceco da coluna lu que e Ident|ty (Lem uma conLaaem predeflnlda) e no preclsa ser lnformada uma colsa mulLo lmporLanLe sempre ao aLrlbulr nomes aos conLroles e uma boa prLlca seaulr um cerLo padro como por exemplo para Labels uso as Lrs leLras lnlclals do conLrole + o que ele represenLa ao formulrlo or exemplo no label de nome uso |b|Nome no LexLbox de nome uso txtNome e asslm por dlanLeAbalxo descrevo na ordem em que foram lnserldos no form os nomes dos conLroles usados na proprledade (Name) que sero ldenLlflcados mals Larde em nosso cdlao (por lsso a lmporLncla de nomes lnLulLlvos e fcels de serem lembrados) Labe|s lblMensaaem lblnome lblLndereco lbl8alrro lblLsLado lbl1elefone lblCelular e lblLmall 1ext8oxes LxLMensaaem LxLnome LxLLndereco LxL8alrro LxL1elefone LxLCelular e LxLLmall ombo8ox (tambm chamado de DropDownL|st) ddlLsLado 8otes bLnCravar bLnnovo e bLnverCadasLros loto Jlcos Jo tlpo Jos oomeoclototos otlllzoJos oo ctlot closses lotetfoces compos ltoptleJoJes MtoJos lotmettos e votlvels ocesse este postvolLando ao formulrlo voc pode perceber que alLerel Lambem os 3 boLes que anLes eram Inser|r Lxc|u|r e Atua||zar e que aaora passam a se chamar Gravar adastro Novo adastro e Ver adastros Cs dols prlmelros so referenLes ao prprlo cadasLro e o Lercelro lrel expllcar mals Larde Como nossos campos Lem um llmlLe de caracLeres Lemos que fazer o mesmo nos LexLboxes que recebero os dados or exemplo na coluna nome fol aLrlbuldo o valor mxlmo de 30 caracLeres ara que facamos o mesmo no txtNome devemos alLerar a proprledade MaxLength (que esL com o valor padro que e 32767) para 50 laca lsso com os demals conLroles com exceco do ombo8ox de LsLado que [ Ler os valores aLrlbuldos a ele e o usurlo s preclsar escolher um valor D|ca para no permlLlr que se[a dlalLado LexLo no Combo8ox alLere a proprledade uropuownSLvle para DropDownL|st na proprledade Items do Combo8ox cllque nos Lrs ponLlnhos ao lado e lnslra os 27 esLados brasllelros (lsso mesmo floLe na mo!) ara faclllLar llsLo abalxo os 27 esLados 01 Amazonas 02 ar 03 Mato Grosso 04 M|nas Gera|s 05 8ah|a 06 Mato Grosso do 5u| 07 Go|s 08 Maranho 09 k|o Grande do 5u| 10 1ocant|ns 11 |au| 12 5o au|o 13 kondn|a 14 kora|ma 15 aran 16 Acre 17 ear 18 Amap 19 ernambuco 20 5anta atar|na 21 ara|ba 22 k|o Grande do Norte 23 Lsp|r|to 5anto 24 k|o de Iane|ro 25 A|agoas 26 5erg|pe 27 D|str|to Iedera| embtooJo ooe se oolset voc poJe oJlclooot molto meoos estoJos s estoo oJlclooooJo toJos oo exemplo poto Jot om tom Je teollsmo oo ptojeto! Ck vamos flnalmenLe aos cdlaos u dols cllques no boLo de Cravar C cdlao usado ser praLlcamenLe o mesmo do cdlao de lnserlr felLo na parLe anLerlor de nosso arLlao laca como na lmaaem a seaulr !lf !vml !endlf Como voc pode perceber a unlca colsa que mudou em relaco ao cdlao da parLe anLerlor do arLlao fol na hora de passar os parmeLros [ que aaora no passo mals os valores no #hardcode" ou se[a dlreLo no cdlao uesLa forma e aLrlbuldo os valores dlalLados pelo usurlo no campo de LexLo e lnserldos no banco S Lome culdado pols na mlnha Labela s delxel permlLldo valor nulo nos campos Lma|| e e|u|ar Se em mals alaum desLes campos voc dlalLar um valor nulo ser dlsparado um erro em seu cdlao ara que se[a lnformado ao usurlo uma mensaaem amlavel quando lsso aconLecer faca o seaulnLe !lf !vml !endlf Loao aclma de nosso cdlao denLro do 1rv/CaLch coloque esLe If que verlflca se os conLroles esLo d|ferentes de str|ngLmpty (que slanlflca que no h valores lnserldos) Se esLo o processamenLo normal de aravaco conLlnua Seno eles enLram no L|se abalxo que exlbe uma mensaaem de erro ao usurlo !lf !vml !endlf uesLa forma capLuramos os posslvels erros ao slsLema Lembrando que essa e uma forma slmpllsLa de se fazer lsso poderlamos mulLo bem crlar um meLodo que vallda esses campos (como bem aponLou meu amlao Lmerson) e chamlo no luaar desLe If enorme que fol felLoCk aaora vamos crlar o meLodo do boLo Novo que lr llmpar os dados dos campos para o usurlo fazer um novo cadasLro lnslra o seaulnLe cdlao !lf !vml !endlf llz um slmples lf peraunLando ao usurlo se ele dese[a llmpar os campos e crlar um novo cadasLro Aaora vamos ao meLodo do boLo Ver adastros que nos val mosLrar um DataGr|dV|ew com Lodos os cadasLros crlados AnLes dlsso Lemos que crlar um novo form ara lsso abra a SoluLlon Lxplorer (C18L + W + S) cllque com o boLo dlrelLo no pro[eLo cllque em Add W|ndows Iorm e d o nome de Veradastros Aaora abra a 1ool8ox (C18L + W + x) v ao submenu Data e arrasLe ao seu form o conLrole DataGr|dV|ew reclsamos adlclonar um Data5ource ao nosso Crld ara lsso cllque na seLa ao lado do Crld e cllque em hoose Data 5ource Add ro[ect Data 5ource como mosLra a lmaaem !lf !vml !endlf na Lela que aparece escolha uaLabase como fonLe de dados e cllque em nexL na prxlma Lela seleclone o uaLabase referenLe a sua Labela de CllenLes cllque para ver a sLrlna de conexo e cllque em nexL !lf !vml !endlf na prxlma Lela delxe seleclonado a opco para salvar sua sLrlna de conexo Lroque o nome dela se dese[ar e cllque em nexL na prxlma Lela escolha os ob[eLos do banco que voc dese[a lmporLar para seu Crld d um nome a seu uaLaSeL e cllque em llnlsh !lf !vml !endlf ronLo nosso Crld aaora esL com as lnformaces provenlenLes de nossa Labela de CllenLes Se voc ver as opces do Crld ver que Lem alaumas em parLlcular mulLo lnLeressanLes que Le permlLem alLerar adlclonar e exclulr os dados do arld e posLerlormenLe da Labela nesse exemplo delxel as 3 opces seleclonadas Salve seu form e volLe ao form de CadasLro u dols cllques no boLo Ver adastros e apenas lnslra o cdlao abalxo para ver o form que crlamos com o arld Aaora complle o pro[eLo cllque no boLo ver CadasLros e ve[a nosso Crld preenchldo como mosLra a lmaaem Na prxima parte de nosso artigo, iremos usar DataSet em nosso projeto. Se tiverem dvidas ou pedidos para que use outros controles relacionados ao acesso a dados no projeto, postem nos comentarios ou mandem emails para wellingtonbalbo@gmail.com.ara quem se lnLeressar dlsponlblllzo o cdlao fonLe desse pro[eLo aqul 995u5loaddearquivos.com.brdownloadadas9rodelien9es.rar Abracos t o ptxlmo ottloo! </p> <p> Cudustro de Clientes em C# osundo conceitos de AO.NIT - Purte Publicidade l 5essoal, vol9o com a srie de ar9igos usando os concei9os bsicos de AD.NET. Nes9a 5ar9e vou mos9rar uma breve in9roduo ao DataSet e de5ois criarei um exem5lo em um novo 5roje9o Windows Forms. onfiram No ar9igo an9erior, j usamos o DataSet no 5roje9o, s que o usamos 5ara alimen9ar os dados no DataGridView. Vamos aos concei9os bsicos dele DataSet - o AD.NET desenado 5ara 5ermi9ir o desenvolvimen9o de a5licaes grandes e al9amen9e escalveis, e um dos maiores obs9culos 5ara a escalabilidade o limi9e de conec9ividade dos bancos de dados, j que eles normalmen9e 9rabalam com um nmero limi9e de conexes a9ivas dis5onveis simul9aneamen9e. s9o significa que, se uma 5ar9e do cdigo 9en9ar fazer a conexo e 9odas as conexes dis5onveis es9iverem sendo u9ilizadas, ele 5recisar aguardar a9 que uma delas es9eja livre. Es9e 5roblema es9 ligado ao nmero de conexes dis5onveis, as 5ossibilidades de a 5erformance ser afe9ada so grandes; se es9e nmero for 5rximo ou igual ao nmero de conexes dis5onveis, o risco menor. Para minimizar esse 5roblema, alm da in9erface DataReader, o AD.NET 9ambm su5or9a o concei9o de mani5ulao do regis9ro desconec9ado, a9ravs da classe DataSet. Es9a classe desenada 5ara 5ermi9ir uma viso geral fcil e navegvel do banco de dados da a5licao. A idia 5or 9rs disso conectar e desconectar rapidamente do banco de dados, saindo com uma c5ia dos dados. Na classe DataSet, os obje9os normalmen9e so cons9rudos com a u9ilizao de um DataAdapter. A DataSet inclui um array DataTabIe (um 5ara cada sen9ena de seleo na query). Toda vez que o DataAdapter vol9ar com os dados do DataSet, 9eremos a viso geral mais recen9e do banco de dados na memria.DataSet 5ossui uma coleo DataTabIe e cria um elemen9o DataTabIe 5ara cada sen9ena (ins9ruo SQL) SELECT na 5esquisa. Conceitos sobre ADO.NET retirados da Apostila de ASP.NET 2005 Captulo 4, do curso feito na Impacta Tecnologia. A5s os concei9os, vamos 5r9ica rie um novo 5roje9o em Windows Forms com o nome ExempIoDataSet. Agora abra a SoIution ExpIorer (TRL + W + S), clique em Add &gt; New 9em, em a9egories selecione Data, escol...</p>

Recommended

View more >