ERRO PARA CARREGAR O DATAGRID

AISLANVGA 24/08/2016 21:44:47
#466152
Boa noite, estou fazendo uma rotina para ler uma tabela e atribuir em um DataGridView, só que esta dando um erro em uma array.



  SQL = [Ô]SELECT * FROM itenscompra WHERE codcompra =[ô][Ô] & NumeroCompra & [Ô][ô][Ô]
Dim cmd As New MySqlCommand(SQL, conn)
Dim dr As MySqlDataReader = cmd.ExecuteReader()
Dim nColunas As Integer = dr.FieldCount

For i As Integer = 0 To nColunas - 1
My.Forms.frmCompraSoja.dgvCompraSoja.Columns.Add(dr.GetName(i).ToString(), dr.GetName(i).ToString())
Next


Dim linhaDados As String() = New String(nColunas - 1)

While dr.Read()
For a As Integer = 0 To nColunas - 1
If dr.GetFieldType(a).ToString() = [Ô]System.Int32[Ô] Then
linhaDados(a) = dr.GetInt32(a).ToString()
End If
If dr.GetFieldType(a).ToString() = [Ô]System.String[Ô] Then
linhaDados(a) = dr.GetString(a).ToString()
End If
If dr.GetFieldType(a).ToString() = [Ô]System.DateTime[Ô] Then
linhaDados(a) = dr.GetDateTime(a).ToString()
End If
Next
My.Forms.frmCompraSoja.dgvCompraSoja.Rows.Add(linhaDados)
End While


fecharconn()


o erro esta acima


alguem pode me ajudar ?
KERPLUNK 24/08/2016 22:38:30
#466153
Resposta escolhida
Com certeza absoluta você está fazendo da forma mais arcaica possível. O correto seria usar OOP e nunca mais ter este tipo de problemas. Tenho um canal no youtube onde explico isso e muito mais.
AISLANVGA 24/08/2016 22:53:20
#466155
amigo estou começando agora, foi o que consegui achar e estou atrasando a minha entrada em OOP com medo de não conseguir intender por não saber o mais basico de desenvolvimento.
KERPLUNK 24/08/2016 22:54:06
#466156
Citação:

:
opa boa noite amigo, o video que tem o material sobre esse assunto vc pode me passar o link direto ?

obrigado


Este é o primeiro da série. Acompanhe toda ela e veja como a OOP é benéfica.
AISLANVGA 24/08/2016 22:58:32
#466157
opa amigo estou vendo aqui vou começar ... mais se puder me dar uma mão com esse erro .. assim tiver um dominio tento mudar usando oop.
KERPLUNK 24/08/2016 23:06:35
#466158
Se soubesse quantas vezes ouvi coisas assim... kkkk
Mas enfim, para servir de [Ô]quebra-galho[Ô](que na maioria das vezes, fica quebrado pra sempre), use um DataTable. Ele pode ser passado diretamente como fonte de dados(DataSource) do DataGridView:

Dim constring As String = [Ô]Sua connection string vai aqui[Ô]
Using con As New MySqlConnection(constring)
Using cmd As New MySqlCommand([Ô]Seu comando SQL Vai aqui[Ô], con)
cmd.CommandType = CommandType.Text
Using sda As New MySqlDataAdapter(cmd)
Using dt As New DataTable()
sda.Fill(dt)
dataGridView1.DataSource = dt
End Using
End Using
End Using
End Using



Não esqueça de mudar os valores da connection string e do comando SQL
KERPLUNK 24/08/2016 23:12:43
#466159
Mesmo assim, insisto para que assista os vídeos, você vai ver o quanto estava [Ô]fazendo errado[Ô] esse tempo todo, tendo uma maneira MUITO, MAS MUITO mais simples e ao mesmo tempo poderosa de se fazer. Dominando OOP, você praticamente NUNCA MAIS vai precisar perguntar nada em fóruns, raríssimas exceções para coisas muito fora do normal.
AISLANVGA 24/08/2016 23:16:01
#466160
ja comecei o primeiro aqui ... a hora que vc falou de data travei aqui um tempo em um campo de data na primeira parte do insert ... lembrei do perrengue que passei aqui .... kkk
AISLANVGA 24/08/2016 23:19:15
#466161
Esse que você passou deu a seguinte mensagem: Connection must be valid and open
AISLANVGA 24/08/2016 23:24:35
#466162
deu certo eu que fiz uma confusão aqui ...
amigo muito obrigado pela ajuda e pelo o conselho sobre seus videos assistirei todos ... abraços
KERPLUNK 24/08/2016 23:25:38
#466163
Fiz na pressa e nem verifiquei sintaxe nem nada. Faltou abrir a conexão...


Dim constring As String = [Ô]Sua connection string vai aqui[Ô]
Using con As New MySqlConnection(constring)
con.Open()
Using cmd As New MySqlCommand([Ô]Seu comando SQL Vai aqui[Ô], con)
cmd.CommandType = CommandType.Text
Using sda As New MySqlDataAdapter(cmd)
Using dt As New DataTable()
sda.Fill(dt)
dataGridView1.DataSource = dt [ô]não se esqueça de aqui, apontar para o Grid ao qual deseja passar os dados... [Ô]dataGridView1[Ô] é um nome genérico...
End Using
End Using
End Using
End Using


Assim deve funcionar...
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas