GRAVAR DATA EM BRANCO NO MYSQL

 Tópico anterior Próximo tópico Novo tópico

GRAVAR DATA EM BRANCO NO MYSQL

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#346881 - 08/07/2010 16:20:36

ADHEL
PRAIA GRANDE
Cadast. em:Junho/2009


Pessoal boa tarde
Antes de criar o tópico pesquisei aqui no site mas não entendi.Gostaria de saber como faço para gravar os campos que armazenam as datas em branco.

Eu gravo datas assim

sqlInsert = "INSERT INTO Vendas(Data1,Data2,Data3)Values('" & _
Format(CType(txtData1.Text, Date), "yyyy-MM-dd") & "','" & Format(CType(txtData2.Text, Date), "yyyy-MM-dd") & "','" & Format(CType(txtData3.Text, Date), "yyyy-MM-dd") & "')"
Comando = New MySqlCommand(sqlInsert, Conexao)
Comando.ExecuteNonQuery()

O problema é que  as vezes algum campo ficará em branco e desse jeito que postei dá erro
Agradeço a todos.




#346885 - 08/07/2010 16:35:20

JONATHANSTECKER
METZ
Cadast. em:Junho/2009


ADHEL,

Eu verifico se a data é nula...
Se for, eu faço um insert DBNull.Value




#346892 - 08/07/2010 17:05:19

ADHEL
PRAIA GRANDE
Cadast. em:Junho/2009


JONATHANSTECKER

Desculpe, não entendi.



#346898 - 08/07/2010 17:23:50

JONATHANSTECKER
METZ
Cadast. em:Junho/2009


Coloque uma condição:

Se Data = vazio então insira DBNull.Value senão insira Format(CType(txtData1.Text, Date), "yyyy-MM-dd")

Acho que fica assim:

sqlInsert = "INSERT INTO Vendas(Data1,Data2,Data3)Values('" & _
If txtData1.Text = "" then DBNull.Value else Format(CType(txtData1.Text, Date), "yyyy-MM-dd")  & "','" & If txtData2.Text = "" then DBNull.Value else Format(CType(txtData2.Text, Date), "yyyy-MM-dd") & "','" & If txtData3.Text = "" then DBNull.Value else Format(CType(txtData3.Text, Date), "yyyy-MM-dd") & "')"
Comando = New MySqlCommand(sqlInsert, Conexao)
Comando.ExecuteNonQuery()




#349130 - 02/08/2010 11:40:15

ADHEL
PRAIA GRANDE
Cadast. em:Junho/2009


JONATHANSTECKER

Desculpe, a demora.O pc que estava fazendo esse projeto deu problema e estava aguardando uns $$ parar resolver.
Escrevi do jeito que você falou e da erro na escrita do código.Tentei mudar mas continua dando erro na escrita do código.
Enfim não consegui.





Resposta escolhida #349206 - 02/08/2010 17:50:38

KILLER
JM
Cadast. em:Março/2010


ADHEL não sei se é assim que você quer, mais funciona:

    Dim Campos As String = ""
    Dim Dados As String = ""

    If IsDate(txtData1.Text) Then
      If Campos = "" Then
        Campos = "Data1"
        Dados = "'" & Format(CType(txtData1.Text, Date), "yyyy-MM-dd") & "'"
      Else
        Campos = Campos & ", Data1"
        Dados = Dados & ", '" & Format(CType(txtData1.Text, Date), "yyyy-MM-dd") & "'"
      End If
    End If
    If IsDate(txtData2.Text) Then
      If Campos = "" Then
        Campos = "Data2"
        Dados = "'" & Format(CType(txtData2.Text, Date), "yyyy-MM-dd") & "'"
      Else
        Campos = Campos & ", Data2"
        Dados = Dados & ", '" & Format(CType(txtData2.Text, Date), "yyyy-MM-dd") & "'"
      End If
    End If
    If IsDate(txtData3.Text) Then
      If Campos = "" Then
        Campos = "Data3"
        Dados = "'" & Format(CType(txtData3.Text, Date), "yyyy-MM-dd") & "'"
      Else
        Campos = Campos & ", Data3"
        Dados = Dados & ", '" & Format(CType(txtData3.Text, Date), "yyyy-MM-dd") & "'"
      End If
    End If
    Comando = New MySqlCommand("INSERT INTO Vendas(" & Campos & ") VALUES (" & Dados & ")", conexao)
    Comando.ExecuteNonQuery()

se eu fosse você trocaria as caixas de texto por MaskedTextBox e na propriedade Mask colocaria '99/99/9999' sem aspas ok, é só uma dica.

A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original. Albert Einstein

#349247 - 03/08/2010 09:29:51

ADHEL
PRAIA GRANDE
Cadast. em:Junho/2009


JONATHANSTECKER
Obrigado .

KILLER simplesmente você solucionou melhor do que queria.
Muito OBRIGADO, MESMO.

KILLER depois que resolver umas pendencias aqui.(Alterar a gravação de datas,colocar tudo desse jeito que você ensinou),
Vou criar mais um tópico sobre Teclas de Atalho.Uma vez você criou e fiquei  com uma dúvida.Aqui não ficou legal.

Até mais



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por ADHEL em 03/08/2010 09:30:10