Jump to content

Banco de Dados data Type


Go to solution Solved by apocsantos,

Recommended Posts

Posted

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

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
Posted

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"

Posted
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.

Posted

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"

Posted (edited)
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
Edited by Felipe Machado
Posted

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"

Posted (edited)

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.   
 

Edited by Felipe Machado
  • Solution
Posted

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

  • Vote 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"

Posted
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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.