Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera, estou com um probleminha aqui, estou trabalhando com visual studio 2010 criando uma aplicação em VB, tenho um windows form com alguns textbox e um botão no final da tela que a ação dele seria gravar os dados preenchidos no banco de dados access 2003.
Vejam o código:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim valor As String
Dim conn As New OleDbConnection()
valor = "c:\dados.mdb"
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & valor
Dim cmd As OleDbCommand = conn.CreateCommand
cmd.CommandText = "Insert into Clientes Values (11,'Teste De Inclusão','Rua Teste no 10','061-123456','10/11/1965')"
Try
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
MsgBox("Registro incluido com sucesso !", MsgBoxStyle.Information, "Incluindo registros")
Catch erro As Exception
MsgBox("Erro " & vbCrLf & erro.ToString, MsgBoxStyle.Critical, "Erro")
End Try
End Sub
Andei efetuando uns testes e buscas na internet mas não encontrei ainda uma solução para os erros:
Type oledbconnection is not defined
Type oledbcommand is not defined
type sqlconnection is not defined
type sqlcommand is not defined
Tenho alguns outros exemplos de scripts que testei mas sempre me deparo com os erros acima, não sei se tenho que fazer referencia a alguma biblioteca de conexão oledb para isto funcionar, se bem que procurei alguma mas como não sabia a certa não fiz a referencia, talves seja isso.
Alguém pode me dar um help ?
Xavier
Olha, apesar d existir 1 controle p/ conexão especifico p/ o Access, sinto mt, não funciona..
em principio você precisa criar 1 connection string;
p exemplo:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\teste_web_developer\app_data\noticias.mdb
mas só isso não resolve, claro.. p/ facilitar
uso o sql data source mesmo, nunca deu problema
faço assim: na toolbox (você precisa estar c/ 1 pg aberta)
aciono data - sql data source - arrasto o icone p/ a pg
(modo "Design) - ao lado do controle vai surgir 1 quadrinho c/ 1 ponta d seta;
clique nela e entre em "configure data source", vai se iniciar 1 assistente - você indica qual banco de dados quer acessar, o caminho etc, a tabela, campos.. td bem intuitivo..
como o banco é access, você terá uma tela ("advanced") onde você já pode inserir instruções "Insert", Update e "Delect" automaticamente, testar a conexão etc.
só 1 alerta: p/ habilitar a opção "advanced" você terá q incluir o campo chave primária da tabela (quadro "Columns") só q essas instruções as vezes precisam d alguns pequenos ajustes,
mas isso é bem simples;
basta selecionar o controle data source, clicar c/ o direito e ir em properties (propriedades),
ai você pode ajustar a instrução, definir parametros ..
+ 2 dicas: - se você criar corretamente a conexão, ela ficará disponivel em "database explorer" e você poderá usa-la em outras pgs (a mesma conexão, facilita bastante)
tenho um windows form com alguns textbox
feita a conexão, ai você pode ir nas propriedades das cxs d texto e conectar (bindings) aos campos da tabela do bd, mas existe 1 jeito + facil, você pode inserir 1 controle "form view" e configurar na fonte d dados (sql data source) q eu expliquei acima ou ate mesmo fazer o inverso; arraste o form p/ sua pg e entre em configure data source (cf explique acima), ok? tente ai e boa sorte
complementando: se configuradas corretamente a conexão e as instruções (Insert, Update e delete),
automaticamente o controle form view já será criado com 1 link p/ você editar o registro.
Bom dia Webfuture
Se ainda precisar de ajuda vou mostrar um codigo abaixo que faz o que você está precisando. Segue:
Imports System.Data.OleDb
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim conexao As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\banco.mdb")
Dim query As String = "insert into tabela (campo) values ('Teste de inclusao')"
conexao.Open()
Dim comando As New OleDbCommand(query, conexao)
If comando.ExecuteNonQuery() = 1 Then
MessageBox.Show("Inclusão efetuada com sucesso")
Else
MessageBox.Show("Falha na gravação")
End If
conexao.Close()
End SubO ExecuteNonQuery executa a query e devolve o número de linhas afetadas.
Espero que ajude!
Sim, você precisa referenciar a biblioteca correta.
O mais correto seria você pedir ajuda em .Net, que você poder te explicar melhor como fazer essa referência.
Vou pedir para transferir para lá.