Jump to content
Fórum Script Brasil
  • 0

Armazenar Valor Vazio


alexandremanowar
 Share

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649.1k
×
×
  • Create New...