MANIPULAÇÃO BÁSICA DE DADOS.

 Tópico anterior Próximo tópico Novo tópico

MANIPULAÇÃO BÁSICA DE DADOS.

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#478220 - 02/12/2017 23:44:08

FUTURA
.
Cadast. em:Maio/2004


Última edição em 03/12/2017 10:27:53 por FUTURA

Pessoal, para fazer consultas com datareader, a sequência abaixo esta correta ? ( em um módulo tenho a conexão com o BD, e alguns datareader e sqlcommand declarados), a dúvida é se posso deixar declarados no módulo, e ir abrindo e fechando nas demais telas, e se o modo de fechar esta correto, usando o dispose só na cnn, no datareader, apenas close. é isso mesmo ?, não tem risco de prender tabelas no banco ?

abre_conexão
Sql = "select codigo,razao,cgc,loc,certserial,ambiente from empresas where codigo=" & CDbl(Mid(Me.cmbempresas.Text, 1, 2)) & " "
Sqlcmd = New SqlCommand(Sql, Cnn)
Dremp = Sqlcmd.ExecuteReader
....
.....
Dremp.close
Cnn.close
cnn.dispose

outro exemplo. Com executenonquery() não tenho disponível o close, estou usando o dispose, é isso mesmo ?

abre_conexão
Sqlcmd3 = New SqlCommand("update envio set st_env='2'   where idenv = '" & wscodenv & "'", Cnn)
Sqlcmd3.ExecuteNonQuery()
sqlcmd3.dispose
Cnn.close
cnn.dispose
      





Resposta escolhida #478231 - 03/12/2017 14:50:21

JABA
CABO FRIO
Cadast. em:Agosto/2005


Utilize o USING.

www.macoratti.net/vbn5_dpo.htm



_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#478233 - 03/12/2017 22:40:42

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Além da dica do JABA, use comandos parametrizados e não concatenação.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#478240 - 04/12/2017 07:37:43

FUTURA
.
Cadast. em:Maio/2004


OK, só não estou usando o using,  mas abro a conexão e fecho a cada acesso a dados. Fiquei em dúvida porque em algum ponto, ficou prendendo o banco. Este app compartilha o banco sql server com um app de gestão em vb6, e no vb6 é que prendeu, não consegui fazer update em uma tabela, somente após sair do app em vb.net. Pelo que entendi, o datareader é só leitura né ?, talvez algum executenonquery() tenha prendido. Mas ja estou revisando.



#478244 - 04/12/2017 09:17:59

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Se usar os blocos using para todos os objetos descartáveis, você não terá mais esse problema de "trancar". O que tranca, não é a aplicação mas sim o GAC

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#478246 - 04/12/2017 09:42:37

FUTURA
.
Cadast. em:Maio/2004


Não sei o que é o GAC, vou pesquisar sobre, e já estou readequando o using.
Muito obrigado...



#478247 - 04/12/2017 10:13:43

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Não esqueça de parametrizar as queries também. Concatenação de valores é uma falha catastrófica.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por FUTURA em 05/12/2017 11:21:08