Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Felipe Machado

[Resolvido] Banco de Dados data Type

Mensagens Recomendadas

Felipe Machado

Olá Boa tarde Estou com um problema que não consegui resolver se alguém puder me ajudar ficarei muito agradecido.:cheesygrin: :thumbsup:

Eu preciso adicionar os valores de data que a pessoa colocar no TextBox(Que seria a data que ela nasceu)

Imports MySql.Data.MySqlClient
Imports System.IO

Public Class CadastroVendedoras

    Dim conn As New MySqlConnection
    Dim cmd As New MySqlCommand
    Dim myData As New DataTable
    Dim SQL As String
   
    Private Sub BTlimpar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTlimpar.Click
        TBcep.Text = 0
        TBcpf.Text = 0
        TBrg.Text = 0
        TBendereco.Text = ""
        TBnome.Text = ""
    End Sub

    Private Sub Vendedoras_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TBcep.Text = 0
        TBcpf.Text = 0
        TBrg.Text = 0
        TBendereco.Text = ""
        TBnome.Text = ""
    End Sub
    Private Sub BTconfirmar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTconfirmar.Click
        Try
	    ''Abre conexão
            connection()
            Try

            Catch ex As Exception

            End Try
	    ''sql= query para banco de dados
            SQL = "INSERT INTO vendedoras (codvend,nome,endereco,rg,cpf,cep,datanasc) VALUES (@cvend,@nome,@endereco,@rg,@cpf,@cep,@data)"
	    ''campos a serem especificados
	    cmd.Parameters.Add("@cvend", MySqlDbType.Int32, 5)
            cmd.Parameters.Add("@nome", MySqlDbType.VarChar, 70)
            cmd.Parameters.Add("@endereco", MySqlDbType.VarChar, 100)
            cmd.Parameters.Add("@rg", MySqlDbType.VarChar, 13)
            cmd.Parameters.Add("@cpf", MySqlDbType.VarChar, 13)
            cmd.Parameters.Add("@cep", MySqlDbType.Int32, 8)
            cmd.Parameters.Add("@data", MySqlDbType.Date)
 	    ''valor a ser cadastrado
	    cmd.Parameters("@cvend").Value = Cvend.Text
	    cmd.Parameters("@nome").Value = TBnome.Text
	    cmd.Parameters("@endereco").Value = TBendereco.Text
            cmd.Parameters("@rg").Value = TBrg.Text
	    cmd.Parameters("@cpf").Value = TBcpf.Text
            cmd.Parameters("@cep").Value = TBcep.Text
            cmd.Parameters("@cpf").Value = TBcpf.Text
            cmd.Parameters("@data").Value = Datan.Text

            cmd = New MySqlCommand(SQL, conn)
            cmd.ExecuteNonQuery()
            MsgBox("Cadastro Realizado")
        Catch ex As Exception
            MsgBox(ex.Message)
	conn.close()
        End Try
    End Sub
	''função que abre conexão
    Public Function connection()
        Try
            conn = New MySqlConnection
            conn.ConnectionString = "server=***; user id=***; password=***; database=***"
            conn.Open()
            If conn.State = ConnectionState.Open Then
                MsgBox("conexão aberta com sucesso")
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        Return True
    End Function

End Class

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Boa noite,

 

cmd.Parameters("@data").Value = (Date.TryParseExact(Datan.Text , CultureInfo.CurrentCulture, DateTimeStyles.None))

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Felipe Machado
18 horas atrás, apocsantos disse:

Boa noite,

 


cmd.Parameters("@data").Value = (Date.TryParseExact(Datan.Text , CultureInfo.CurrentCulture, DateTimeStyles.None))

Cordiais cumprimentos,

Apocsantos

Obrigado pela resposta.

Desculpa, mais tem que trocar alguma palavra ou declarar variável ou importar alguma biblioteca, nunca usei este método, e está dando erro.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Boa tarde,

Sem saber qual é o erro é complicado ajudar! Coloca cá o erro que isso ajuda bastante mais!


Imports System.Globalization 'precisa importar o Globalization

Dim dateValue as DateTime 'declara uma variavel do tipo datetime

''esse bloco faz o parse de texto para datetime
'' recebe como argumentos o formato, as definições culturais do sistema, os estilos
'' e a variável de destino, do tipo DateTime
Date.TryParseExact(Datan.text, "dd/MM/yyyy", _
                               CultureInfo.CurrentCulture, _
                               DateTimeStyles.None, _
                               dateValue)
''fim do bloco

cmd.Parameters("@data").Value = dateValue ''coloca o valor do parametro com o valor da variável já em formato de data

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Felipe Machado
42 minutos atrás, apocsantos disse:

Boa tarde,

Sem saber qual é o erro é complicado ajudar! Coloca cá o erro que isso ajuda bastante mais!



Imports System.Globalization 'precisa importar o Globalization

Dim dateValue as DateTime 'declara uma variavel do tipo datetime

''esse bloco faz o parse de texto para datetime
'' recebe como argumentos o formato, as definições culturais do sistema, os estilos
'' e a variável de destino, do tipo DateTime
Date.TryParseExact(Datan.text, "dd/MM/yyyy", _
                               CultureInfo.CurrentCulture, _
                               DateTimeStyles.None, _
                               dateValue)
''fim do bloco

cmd.Parameters("@data").Value = dateValue ''coloca o valor do parametro com o valor da variável já em formato de data

Cordiais cumprimentos,

Apocsantos

Aparentemente está tudo certo mas está dando o erro

o erro que está gerando é:

Parameter '@data' not found in the collection.

 

Try
            connection()
            Try

            Catch ex As Exception

            End Try

            SQL = "INSERT INTO vendedoras (codvend,nome,endereco,rg,cpf,cep,datanasc) VALUES (@cvend,@nome,@endereco,@rg,@cpf,@cep,@data)"

            Dim dateValue As DateTime

            cmd.Parameters.Add("@nome", MySqlDbType.VarChar, 70)
            cmd.Parameters.Add("@cvend", MySqlDbType.Int32, 5)
            cmd.Parameters.Add("@endereco", MySqlDbType.VarChar, 100)
            cmd.Parameters.Add("@rg", MySqlDbType.VarChar, 13)
            cmd.Parameters.Add("@cpf", MySqlDbType.VarChar, 13)
            cmd.Parameters.Add("@cep", MySqlDbType.Int32, 8)
            cmd.Parameters("@data").Value = (Date.TryParseExact(Datan.Text, "dd/MM/yyyy", CultureInfo.CurrentCulture, DateTimeStyles.None, dateValue))

            cmd.Parameters("@nome").Value = TBnome.Text
            cmd.Parameters("@cvend").Value = Cvend.Text
            cmd.Parameters("@rg").Value = TBrg.Text
            cmd.Parameters("@cpf").Value = TBcpf.Text
            cmd.Parameters("@cep").Value = TBcep.Text
            cmd.Parameters("@endereco").Value = TBendereco.Text
            cmd.Parameters("@data").Value = dateValue
            '"debuguei" o programa e vi que o dateValue está vazio'
            'o datan está recebendo o valor normal'

            cmd = New MySqlCommand(SQL, conn)
            cmd.ExecuteNonQuery()
            MsgBox("Cadastrado (a) ")
        Catch ex As Exception
            MsgBox(ex.Message)

        End Try

 

 

 

 

Editado por Felipe Machado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Boa tarde,

Try
            connection()
            Try

            Catch ex As Exception

            End Try

            SQL = "INSERT INTO vendedoras (codvend,nome,endereco,rg,cpf,cep,datanasc) VALUES (@cvend,@nome,@endereco,@rg,@cpf,@cep,@data)"

            Dim dateValue As DateTime = Date.TryParseExact(Datan.Text, "dd/MM/yyyy", CultureInfo.CurrentCulture, DateTimeStyles.None)

            cmd.Parameters.Add("@nome", MySqlDbType.VarChar, 70)
            cmd.Parameters.Add("@cvend", MySqlDbType.Int32, 5)
            cmd.Parameters.Add("@endereco", MySqlDbType.VarChar, 100)
            cmd.Parameters.Add("@rg", MySqlDbType.VarChar, 13)
            cmd.Parameters.Add("@cpf", MySqlDbType.VarChar, 13)
            cmd.Parameters.Add("@cep", MySqlDbType.Int32, 8)
            cmd.Parameters("@data").Value = dateValue

            cmd.Parameters("@nome").Value = TBnome.Text
            cmd.Parameters("@cvend").Value = Cvend.Text
            cmd.Parameters("@rg").Value = TBrg.Text
            cmd.Parameters("@cpf").Value = TBcpf.Text
            cmd.Parameters("@cep").Value = TBcep.Text
            cmd.Parameters("@endereco").Value = TBendereco.Text
            cmd.Parameters("@data").Value = dateValue
            '"debuguei" o programa e vi que o dateValue está vazio'
            'o datan está recebendo o valor normal'

            cmd = New MySqlCommand(SQL, conn)
            cmd.ExecuteNonQuery()
            MsgBox("Cadastrado (a) ")
        Catch ex As Exception
            MsgBox(ex.Message)

        End Try

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Felipe Machado

Date.TryParseExact(Datan.Text, "dd/MM/yyyy", CultureInfo.CurrentCulture, DateTimeStyles.None)

ta dando erro nesta parte

Error    1    Overload resolution failed because no accessible 'TryParseExact' accepts this number of arguments.   
 

Editado por Felipe Machado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Boa noite,

 

 Dim formats() As String = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", _
                                 "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", _
                                 "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", _
                                 "M/d/yyyy h:mm", "M/d/yyyy h:mm", _
                                 "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"}

Dim dateValue As DateTime = Date.TryParseExact(dateString, formats, _
                               New CultureInfo("pt-PT"), _
                               DateTimeStyles.None, _
                               dateValue)

Aqui fica a solução completa.

Cordiais cumprimentos,

Apocsantos

  • Voto 1

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Felipe Machado
Em 06/09/2016 às 17:23, apocsantos disse:

Boa noite,

 


 Dim formats() As String = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", _
                                 "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", _
                                 "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", _
                                 "M/d/yyyy h:mm", "M/d/yyyy h:mm", _
                                 "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"}

Dim dateValue As DateTime = Date.TryParseExact(dateString, formats, _
                               New CultureInfo("pt-PT"), _
                               DateTimeStyles.None, _
                               dateValue)

Aqui fica a solução completa.

Cordiais cumprimentos,

Apocsantos

obrigado funcionou

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.