ERRO INSERT MYSQL
Pessoal,
Estou migrando do access para o MySQL e me deparei com o seguinte erro ao tentar fazer um insert [Ô]A cadeia de caracteres de entrada não estava em um formato incorreto.[Ô]
Segue o código:
Estou migrando do access para o MySQL e me deparei com o seguinte erro ao tentar fazer um insert [Ô]A cadeia de caracteres de entrada não estava em um formato incorreto.[Ô]
Segue o código:
Using con As MySqlConnection = ConexaoComMysql()
Dim comando As MySqlCommand
Dim queryResult As Integer
con.Open()
comando = New MySqlCommand([Ô]SELECT COUNT(*) FROM Tabela WHERE Campo1 =[ô][Ô] & Me.TextBox1.Text & [Ô][ô][Ô], con)
queryResult = comando.ExecuteScalar()
If queryResult = 0 Then
comando = New MySqlCommand([Ô]INSERT INTO Tabela ([Campo1], [Campo2], [Campo3]) VALUES (@Campo1, @Campo2, @Campo3)[Ô], con)
comando.Parameters.AddWithValue([Ô]@Campo1[Ô], MySqlDbType.VarChar).Value = TextBox1.Text
comando.Parameters.AddWithValue([Ô]@Campo2[Ô], MySqlDbType.VarChar).Value = TextBox2.Text
comando.Parameters.AddWithValue([Ô]@Campo3[Ô], MySqlDbType.VarChar).Value = System.DateTime.Now
comando.ExecuteNonQuery()
MsgBox([Ô]sucesso[Ô])
Else
MsgBox([Ô]erro[Ô])
End If
End Using
Nao sei se seria isso, mas nos campos eu passo o nome da coluna, as colunas sao todas varchar mesmo? A coluna de data nao esta em date no bd?
Caro NICKOSOFT,
Melhorei o código para melhor entendermos, deixei todos os campos do banco como [Ô]varchar(253)[Ô] e o erro persiste.
Melhorei o código para melhor entendermos, deixei todos os campos do banco como [Ô]varchar(253)[Ô] e o erro persiste.
Using con As MySqlConnection = ConexaoComMysql()
Dim comando As MySqlCommand
Dim queryResult As Integer
con.Open()
comando = New MySqlCommand([Ô]SELECT COUNT(*) FROM Tabela WHERE Coluna1 =[ô][Ô] & Me.TextBox1.Text & [Ô][ô][Ô], con)
queryResult = comando.ExecuteScalar()
If queryResult = 0 Then
comando = New MySqlCommand([Ô]INSERT INTO Tabela ([Coluna1], [Coluna2], [Coluna3]) VALUES (@Coluna1, @Coluna2, @Coluna3)[Ô], con)
comando.Parameters.AddWithValue([Ô]@Coluna1[Ô], MySqlDbType.VarChar).Value = TextBox1.Text
comando.Parameters.AddWithValue([Ô]@Coluna2[Ô], MySqlDbType.VarChar).Value = TextBox2.Text
comando.Parameters.AddWithValue([Ô]@Coluna3[Ô], MySqlDbType.VarChar).Value = TextBox3.Text
comando.ExecuteNonQuery()
MsgBox([Ô]Sucesso[Ô])
Else
MsgBox([Ô]Já existe um registo[Ô])
End If
End Using
Mude para,
Using con As MySqlConnection = ConexaoComMysql()
Dim comando As MySqlCommand
Dim queryResult As Integer
con.Open()
comando = New MySqlCommand([Ô]SELECT COUNT(*) FROM Tabela WHERE Coluna1 =[ô][Ô] & Me.TextBox1.Text & [Ô][ô][Ô], con)
queryResult = comando.ExecuteScalar()
If queryResult = 0 Then
comando = New MySqlCommand([Ô]INSERT INTO Tabela (Coluna1, Coluna2, Coluna3) VALUES (@Coluna1, @Coluna2, @Coluna3)[Ô], con)
comando.Parameters.Add([Ô]@Coluna1[Ô], MySqlDbType.VarChar).Value = TextBox1.Text
comando.Parameters.Add([Ô]@Coluna2[Ô], MySqlDbType.VarChar).Value = TextBox2.Text
comando.Parameters.Add([Ô]@Coluna3[Ô], MySqlDbType.VarChar).Value = TextBox3.Text
comando.ExecuteNonQuery()
MsgBox([Ô]Sucesso[Ô])
Else
MsgBox([Ô]Já existe um registo[Ô])
End If
End Using
O que está de vermelho,não é uma forma adequada para procura registro e comparar.Dor de cabeça.
([Ô]SELECT [txt-color=#e80000]COUNT(*)[/txt-color] FROM Tabela WHERE Coluna1 =[ô][Ô] & Me.TextBox1.Text & [Ô][ô][Ô], con)
Using con As MySqlConnection = ConexaoComMysql()
Dim comando As MySqlCommand
Dim queryResult As Integer
con.Open()
comando = New MySqlCommand([Ô]SELECT COUNT(*) FROM Tabela WHERE Coluna1 =[ô][Ô] & Me.TextBox1.Text & [Ô][ô][Ô], con)
queryResult = comando.ExecuteScalar()
If queryResult = 0 Then
comando = New MySqlCommand([Ô]INSERT INTO Tabela (Coluna1, Coluna2, Coluna3) VALUES (@Coluna1, @Coluna2, @Coluna3)[Ô], con)
comando.Parameters.Add([Ô]@Coluna1[Ô], MySqlDbType.VarChar).Value = TextBox1.Text
comando.Parameters.Add([Ô]@Coluna2[Ô], MySqlDbType.VarChar).Value = TextBox2.Text
comando.Parameters.Add([Ô]@Coluna3[Ô], MySqlDbType.VarChar).Value = TextBox3.Text
comando.ExecuteNonQuery()
MsgBox([Ô]Sucesso[Ô])
Else
MsgBox([Ô]Já existe um registo[Ô])
End If
End Using
O que está de vermelho,não é uma forma adequada para procura registro e comparar.Dor de cabeça.
([Ô]SELECT [txt-color=#e80000]COUNT(*)[/txt-color] FROM Tabela WHERE Coluna1 =[ô][Ô] & Me.TextBox1.Text & [Ô][ô][Ô], con)
Valeu OMAR2011,
Agradeço a ajuda, e aproveitando seus conhecimentos, qual seria uma melhor forma de comparar nesta situação?
Agradeço a ajuda, e aproveitando seus conhecimentos, qual seria uma melhor forma de comparar nesta situação?
Qual o Erro que apresenta no sistema?
Esse método somente passa os seguintes paramentros (<string parameterName>, <object value>), não tem Type
comando.Parameters.AddWithValue
Mas tente retirar os colchetes no nome das colunas no INSERT pra ver se resolve e passe um tamanho para o campo.
Exempo se os campos estão varchar(253) então diga para o parametro que os campo tem esse tamanho.
Use o comando.Parameters.Add
comando = New MySqlCommand([Ô]INSERT INTO Tabela (Coluna1, Coluna2, Coluna3) VALUES (@Coluna1, @Coluna2, @Coluna3)[Ô], con)
comando.Parameters.Add([Ô]@Coluna1[Ô], MySqlDbType.VarChar, 253).Value = TextBox1.Text
comando.Parameters.Add([Ô]@Coluna2[Ô], MySqlDbType.VarChar, 253).Value = TextBox2.Text
comando.Parameters.Add([Ô]@Coluna3[Ô], MySqlDbType.VarChar, 253).Value = TextBox3.Text
Espero ter ajudado
Esse método somente passa os seguintes paramentros (<string parameterName>, <object value>), não tem Type
comando.Parameters.AddWithValue
Mas tente retirar os colchetes no nome das colunas no INSERT pra ver se resolve e passe um tamanho para o campo.
Exempo se os campos estão varchar(253) então diga para o parametro que os campo tem esse tamanho.
Use o comando.Parameters.Add
comando = New MySqlCommand([Ô]INSERT INTO Tabela (Coluna1, Coluna2, Coluna3) VALUES (@Coluna1, @Coluna2, @Coluna3)[Ô], con)
comando.Parameters.Add([Ô]@Coluna1[Ô], MySqlDbType.VarChar, 253).Value = TextBox1.Text
comando.Parameters.Add([Ô]@Coluna2[Ô], MySqlDbType.VarChar, 253).Value = TextBox2.Text
comando.Parameters.Add([Ô]@Coluna3[Ô], MySqlDbType.VarChar, 253).Value = TextBox3.Text
Espero ter ajudado
Um exemplo simples com uma Tabela de Clientes.
Quando for registrar e para consultar, de preferência usa CPF.Isto porque,não existe duas pessoas com o mesmo CPF,RG mas existe homônimo.
Procure sempre uma forma de só existir um registro com a mesma identificação.
é mais o u menos assim.
Conseguiu seu objetivo, pode fechar o post.
Valeu.
Quando for registrar e para consultar, de preferência usa CPF.Isto porque,não existe duas pessoas com o mesmo CPF,RG mas existe homônimo.
Procure sempre uma forma de só existir um registro com a mesma identificação.
é mais o u menos assim.
Conseguiu seu objetivo, pode fechar o post.
Valeu.
Valeu FILMAN, a solução do Omar funcionou, de qualquer forma obrigado a todos!
Tópico encerrado , respostas não são mais permitidas