GRAVAR DATA EM BRANCO NO MYSQL
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.
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.
ADHEL,
Eu verifico se a data é nula...
Se for, eu faço um insert [txt-color=#e80000]DBNull.Value[/txt-color]
Eu verifico se a data é nula...
Se for, eu faço um insert [txt-color=#e80000]DBNull.Value[/txt-color]
JONATHANSTECKER
Desculpe, não entendi.
Desculpe, não entendi.
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()
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()
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.
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.
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.
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.
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
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 encerrado , respostas não são mais permitidas