Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo Mendes

[Resolvido] Usando ADO.NET

Recommended Posts

Olá Folks.

 

Bem daqui pra frente talvez seja um frequentador mais assíduo de desse fórum. Outra coisa, se minha dúvida for impertinente podem remvoer o tópico sem estresse hehehe....

 

Preciso saber o seguinte, pesquisando a respeito de conexão com banco de dados usando o ADO.NET, as informações que encontrei não funcionam no meu VS 2005.

 

Pelo que entendi uma conexão é feita da seguinte maneira.

 

Dim conn As New OleDbConnection()
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="C:\MeuBanco.mdb"
Dim cmd As OleDbCommand = conn.CreateCommand

Só que onde está escrito OleDbConnection ele não compila. Onde estou errando? Esse código funciona para SQLServer Express 2005??

 

Desde já Obrigado.

 

Paulo Mendes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Paulo seu código não ta muito ok.

Para simplesmente testar sua conexão basta:

Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\MeuBanco.mdb'")
		conn.Open()
		conn.Close()

Primeiro item, na sua string de conexão você tinha 3 aspas duplas, e as aspas devem funcionar como os parenteses, sempre abrindo e fechando.

Segundo item é que aquele Command estava perdido, não tinha necessidade.

Respondendo a sua pergunta se o código funciona com Sql Server, ele funciona sim, mas terá que trocar o namespace, ao invés de OleDb, utilizará SqlClient.

E por último uma dúvida nunca é impertinente http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Bruno.

 

Valeu...ainda bem que não é impertinente, aliás, eu não achei algum tópico relacionado a isso, se puder me indicar, mas então vamos lá.

 

Bem, o meu problema é justamente com o NameSpace, ele não aceita...Aquela questão das aspas foi porque eu estava concatenando o lugar do banco com o texto de um textbox, ai esquci de tirar hehehe...mas não tem erro não..

 

Bem, dei uma exugada no código e estou passando a rotina...preciso saber se a ConnectionString é essa mesmo

 

Private Sub s_abreBanco()
 
 Dim Cn As New SqlClientConnection("Data Source=CPD-1\SQLEXPRESS;Initial Catalog=loja;Integrated Security=True;Pooling=False")
 Cn.Open()

End Sub

Essa string foi aquele assistente de DataSource que criou. E o Erro é 'Type SqlClientConnection' is not defined.

 

Muito obrigado desde já.

 

Paulo Mendes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É necessário dar um Import no SqlClient.

Na primeira linha do seu formulário coloque:

Imports Ssystem.Data.SqlClient

De uma olhada: http://www.macoratti.net/aspn_bdb.htm

 

Abraços...

 

Edit.:

Troque SqlClientConnection por SqlConnection

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora Consegui fazer a conexão.

 

Bem, estava vendo, todo conteúdo a respeito de ado.net trabalha com strings SQL. Bem, não seria possível cirar um componente semelhante à um recorset para fazermos o tratamento dos dados?

 

Outra coisa, como faço para criar um DataSet via código...eu sei que ele gera um arquivo xml para acesso à dados, mas não sei como colocar os dados e acessá-lo.

 

Hehe...Valews.

 

Paulo Mendes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom essas matérias...resolveram 100% minha dúvida...obrigado mesmo Brunão.

 

Mas só uma coisa...a título de curiosidade mesmo.

 

Quando criamos o DataAdapter ele tem nele todas as rotinas (incluir, atualizar, excluir e procurar), quando programávamos com vb usando o ADO mesmo tínhamos que fazer isso na unha...bem...por um lado era até bom, pois você mantinha o controle total das operações para os campos no código. Pelo que entendi, agora a consistência de dados tende a ficar toda com o Banco de Dados. Ele que retornaria as mensagens de erro caso um campo fosse digitado errôneamente, claro que nós podemos fazer toda a consistência na aplicação ainda...mas antes não tinhamos essa facilidade com o DataAdapter.

 

Minha dúvida é, qual o jeito recomendado para fazer a consistência das trasações...deixamos isso para o banco...já que o ADO.NET tende mais para esse lado, ou continuo fazendo as rotinas na aplicação.

 

Paulo Mendes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Considero a pergunta complicada e um pouco pessoal, eu prefiro fazer minhas validações na aplicação, não costumo retornar mensagens de erro do banco para o usuário, nem deixar a carga ao banco, ainda mais que não sou nenhum DBA, eu prefiro deixar as regras na aplicação.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado Bruno...

 

Agora só a última questão...e depois disso poderemos passar uma régua no tópico :lol:

 

Como eu faço para acessar o valor de campo a campo com o DataSet carregado....por exemplo, no recordset era

 

var = Rds("campo1")

 

como faço isso com o ADO.NET?? È possível atualizar somente esse campo, por exemplo Rds("campo1") = valor ??

 

Paulo Mendes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu, muito obrigado.

 

Desculpe só responder agora, mas é que aqui em Piracicaba Sexta-Feira foi feriado, então, hehe, dei um tempo sabe.

 

Mas funcionou melhor do que eu esperava realmente. Talvez pra quem não saiba é simples demais

 

depois que carregar o dataset é só ir passando os valores para os parâmetros corretos que ele exibe os dados que você quiser, muito simples

 

Dim str_teste() as String
Dim contador as Integer

Redim str_teste(BindingContext(dts_clientes, "clientes").count) 'redimensionando o vetor para o numero de registros do dataset

for contador = 0 to ubuond(str_teste)
   str_teste(contador) = dts_clientes.Tables("clientes").Rows(contador)("nome") 'colocando os valores em cada posicao do vetor
next

Muito dahora, valew mesmo, pode passar a régua.

 

Resolvido ! ! !

 

Paulo Mendes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.