Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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.
É 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
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.
Dois Artigos pra ti que serão úteis:
http://www.macoratti.net/aspn_abd.htm
http://www.htmlstaff.org/ver.php?id=2315
Abraços...
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.
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...
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.
Da uma olhada na AlteraQuantidade deste artigo: http://www.dotnetmaniacs.com.br/dotnetmani...px?ArticleId=55
Acho que é o que esta querendo.
Abraços...
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.
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...