INTEGER NO BANCO ACCESS .MDB

GILBERTOJW 28/02/2013 09:21:41
#419714
Pessoal uso a estrutura abaixo para colocar strings nos bancos mbd e tudo beleza. Quero agora colocar Integer. Meu banco tá preparado com 4 campos numéricos inteiro longo e o dado à ser inserido é no máximo de 5 dígitos. Dá erro na inclusão. Uso no Visual Basic 2008.



Try
cmd = Con.CreateCommand
Con.Open()

With cmd
.CommandType = CommandType.Text
.CommandText = [Ô]INSERT INTO orcamentos (numorc,cliente,produto,quantidade)VALUES (@numorc,@cliente,@produto,@quantidade)[Ô]
.Parameters.Add([Ô]@numorc[Ô], OleDbType.Integer)
.Parameters([Ô]@numorc[Ô]).Value = TextBox4.Text
.Parameters.Add([Ô]@cliente[Ô], OleDbType.Integer)
.Parameters([Ô]@cliente[Ô]).Value = numdecliente
.Parameters.Add([Ô]@produto[Ô], OleDbType.Integer)
.Parameters([Ô]@produto[Ô]).Value = numdeproduto
.Parameters.Add([Ô]@quantidade[Ô], OleDbType.Integer)
.Parameters([Ô]@quantidade[Ô]).Value = TextBox3.Text
.ExecuteNonQuery()
End With
MsgBox([Ô]Incluido com sucesso.[Ô])
Con.Close()
cmd.Parameters.Clear()
Con.Close()
Catch
cmd.Parameters.Clear()
MsgBox([Ô]A inclusão falhou.[Ô])
End Try
cmd.Parameters.Clear()

Alguém pode imaginar algum erro para me ajudar ?
LLAIA 28/02/2013 11:25:05
#419721
Tem que postar a mensagem de erro
GILBERTOJW 28/02/2013 12:12:18
#419724
Não dá mensagem de erro LLAIA. A única coisa que me mostra é a minha solicitação de msgbox ([Ô] A inclusão falhou.[Ô])
ROBIU 28/02/2013 13:11:36
#419726
Para aparecer a mensagem deve comentar o try e tudo a partir do catch.

teste trocar o OleDbType.Integer para:
OleDbType.BigInt
ou
OleDbType.VarNumeric
ou
OleDbType.Numeric
ou
OleDbType.VarChar
GILBERTOJW 28/02/2013 16:22:46
#419736
Robiu tentei todos, mas sem resultado. Como eu comento o Try ?
OMAR2011 28/02/2013 16:50:53
#419737
Para mim é abertura do Banco.
Testei e foi normal.
.CommandText = [Ô]INSERT INTO tblproduto (codigo,nome,peso,qtdade)VALUES (@codigo,@nome,@peso,@qtdade)[Ô]
Código=numeração automática
nome =texto
peso=número
qtdade=número

con = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:ivaldo.mdb;Persist Security Info=false;jet oledb:database password=gibadoexpresso340[Ô])

Try
cmd = Con.CreateCommand
Con.Open()

With cmd
.CommandType = CommandType.Text
.CommandText = [Ô]INSERT INTO orcamentos (numorc,cliente,produto,quantidade)VALUES (@numorc,@cliente,@produto,@quantidade)[Ô]
.Parameters.Add([Ô]@numorc[Ô], OleDbType.Integer)
.Parameters([Ô]@numorc[Ô]).Value = TextBox4.Text
.Parameters.Add([Ô]@cliente[Ô], OleDbType.Integer)
.Parameters([Ô]@cliente[Ô]).Value = numdecliente
.Parameters.Add([Ô]@produto[Ô], OleDbType.Integer)
.Parameters([Ô]@produto[Ô]).Value = numdeproduto
.Parameters.Add([Ô]@quantidade[Ô], OleDbType.Integer)
.Parameters([Ô]@quantidade[Ô]).Value = TextBox3.Text
.ExecuteNonQuery()
End With
MsgBox([Ô]Incluido com sucesso.[Ô])
Con.Close()
cmd.Parameters.Clear()
Con.Close()
Catch
cmd.Parameters.Clear()
MsgBox([Ô]A inclusão falhou.[Ô])
End Try
[txt-color=#e80000]cmd.Parameters.Clear()[/txt-color] [ô]Perambulando,perdido no código
GILBERTOJW 28/02/2013 17:59:40
#419740
Caro Omar obrigado. Meus quatro campos são numéricos.
Quando você menciona [Ô]abertura do banco[Ô], você sugere que na prática eu mude o quê ? tenho que mudar alguma coisa nas linhas de programação ? Ou tentar mudar alguma coisa direto no banco access ? Ou alguma outra coisa ainda ?

Agradeço;
LLAIA 28/02/2013 18:15:28
#419742
Exiba a mensagem assim:

Try
cmd = Con.CreateCommand
Con.Open()

With cmd
.CommandType = CommandType.Text
.CommandText = [Ô]INSERT INTO orcamentos (numorc,cliente,produto,quantidade)VALUES (@numorc,@cliente,@produto,@quantidade)[Ô]
.Parameters.Add([Ô]@numorc[Ô], OleDbType.Integer)
.Parameters([Ô]@numorc[Ô]).Value = TextBox4.Text
.Parameters.Add([Ô]@cliente[Ô], OleDbType.Integer)
.Parameters([Ô]@cliente[Ô]).Value = numdecliente
.Parameters.Add([Ô]@produto[Ô], OleDbType.Integer)
.Parameters([Ô]@produto[Ô]).Value = numdeproduto
.Parameters.Add([Ô]@quantidade[Ô], OleDbType.Integer)
.Parameters([Ô]@quantidade[Ô]).Value = TextBox3.Text
.ExecuteNonQuery()
End With
MsgBox([Ô]Incluido com sucesso.[Ô])
Con.Close()
cmd.Parameters.Clear()
Con.Close()
Catch (ex as Exception)
cmd.Parameters.Clear()
MsgBox([Ô]A inclusão falhou.[Ô] + ex.Message)
End Try

OMAR2011 28/02/2013 19:04:18
#419744
Resposta escolhida
Para mim é a abertura do seu banco que não é feita.

Try
cmd = Con.CreateCommand
Con.Open()
Você nao abriu o Banco.

O modo de abri que você não mostrou,deduz que está faltando.

Peguei o código d LLAIA e fiz um teste com pequena modificação.Tiro e queda.
Verifique.

Private Sub Button13_Click(sender As System.Object, e As System.EventArgs) Handles Button13.Click
Dim con As OleDbConnection
Dim cmd As OleDbCommand
Dim numdecliente As Integer = 1234
Dim numdeproduto As Integer = 123456
[ô]con = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & My.Application.Info.DirectoryPath & [Ô]\BRAS2010.MDB[Ô]) [ô]
con = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:ivaldo.mdb;Persist Security Info=false;jet oledb:database password=gibadoexpresso340[Ô])

Try
CMD = con.CreateCommand
con.Open()

With CMD
.CommandType = CommandType.Text
.CommandText = [Ô]INSERT INTO orcamentos (numorc,cliente,produto,quantidade)VALUES (@numorc,@cliente,@produto,@quantidade)[Ô]
.Parameters.Add([Ô]@numorc[Ô], OleDbType.Integer)
.Parameters([Ô]@numorc[Ô]).Value = TextBox1.Text
.Parameters.Add([Ô]@cliente[Ô], OleDbType.Integer)
.Parameters([Ô]@cliente[Ô]).Value = numdecliente
.Parameters.Add([Ô]@produto[Ô], OleDbType.Integer)
.Parameters([Ô]@produto[Ô]).Value = numdeproduto
.Parameters.Add([Ô]@quantidade[Ô], OleDbType.Integer)
.Parameters([Ô]@quantidade[Ô]).Value = TextBox4.Text
.ExecuteNonQuery()
End With
MsgBox([Ô]Incluido com sucesso.[Ô])
con.Close()
CMD.Parameters.Clear()
con.Close()
Catch
CMD.Parameters.Clear()
MsgBox([Ô]A inclusão falhou.[Ô])
End Try
End Sub
FELLIPEASSIS 28/02/2013 22:50:56
#419753
coloque assa menssagem no catch
MessageBox.Show([Ô]Ocorreu um erro:[Ô] & vbNewLine & _
Err.Description.ToString, _
[Ô]Gravar Dados[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)

cmd.Parameters.Clear()
exit sub
GILBERTOJW 01/03/2013 12:24:51
#419769
Omar seu raciocínio ajudou.
Coloquei as linhas abaixo conforme vocÊ sugeriu.


Dim con As OleDbConnection
Dim cmd As OleDbCommand
con = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:ivaldo.mdb;Persist Security Info=false;jet oledb:database password=gibadoexpresso340[Ô])

Resolvido


Felipe sua orientação de mensagem no catch certamente me ajudará em outras situações . Agradeço também

Tópico encerrado , respostas não são mais permitidas