Ir para conteúdo
Fórum Script Brasil
  • 0

Armazenar Valor Vazio


alexandremanowar

Pergunta

E aí pessoal

Estou tentando armazenar um array de informações em mysql 5 e estou tendo o seguinte problema.

Quando o array vem com todos os campos preenchidos ele armazena beleza, porpem quando ele vem com um ou mais campos do array vazio ele da pau na hora de armazenar. E marca a linha do insert informando o erro.

O valor da matriz vem de um arquivo csv que aprendi a manipular em um outro post que fiz esses dias logo eu abro a arquivo da seguinte forma:

Dim Valor As New IO.StreamReader(Arquivo)
        Dim Ler As String = Valor.ReadToEnd()
        Dim Linhas As String() = Ler.Split(vbCrLf)
        Dim Qt_linhas As Integer = Linhas.Length


        For Each linha As String In Linhas

            Dim analisar As String = linha
            Dim quebra As String() = analisar.Split(";")

            If Not linha.Trim() = "" Then

              Dim cmd As New MySqlCommand("INSERT INTO tabela(campo1,campo2,campo3,campo4)values('" & Trim(quebra(0)) & "','" & Trim(quebra(1)) & "','" & Trim(quebra(2)) & "','" & Trim(quebra(3)) & "')",conn)

                cmd.ExecuteNonQuery()
.......
Então dessa form se o array quebra vem com todos os campo preechidos tipo: quebra[0] = "aaa" quebra[1] = "bbb" quebra[3] = "ccc" quebra[4] = "ddd" Ele armazena numa boa mas se vem assim: quebra[0] = "aaa" quebra[1] = "" quebra[3] = "ccc" quebra[4] = "" Ou outro campo vazio qualquer não armazena! Como faço para não ignorar osa campos em branco? Ou como coloco uma valor padão no campo em branco tipo quebra[0] = "aaa" quebra[1] = "vazio" quebra[3] = "ccc" quebra[4] = "vazio" Eu tente assim

...
Dim qt_campos As Integer = quebra.Length
For each contador As String In qt_campos
  If quebra(contador).Trim() = "" Then
   quebra(contador) = "vazio"
  End If
Next

...

Porém esta dando erro nessa linha: If quebra(contador).Trim() = "" Then

Como eu arrumo isso? Onde estou errando?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

O índice (contador) deveria ser um inteiro e não uma string. Além disso, acho que você deveria usar um For... Next comum nesta parte:

Dim qt_campos As Integer = quebra.Length
For contador As Integer = 0 to qt_campos-1
  If quebra(contador).Trim() = "" Then
   quebra(contador) = "vazio"
  End If
Next

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...