ERRO AO ACESSAR O BANCO DE DADOS

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

ERRO AO ACESSAR O BANCO DE DADOS

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#484702 - 30/09/2018 18:43:46

ELMO01
BELO HORIZONTE
Cadast. em:Agosto/2004


Oi pessoal.

Estou tentando fazer uma função para vários ComboBox do meu programa, onde só altero alguns parâmetros e variáveis desta função. Mais ao rodar me retorna o seguinte erro:

O índice e o comprimento devem se referir a um local dentro da cadeia de caracteres. Nome do parâmetro: length  

Por favor olhe para mim o que estou fazendo de errado e me dê uma sugestão de como contornar mais este erro.

Abaixo está a função que estou tentando desenvolver.

StrServ = "Server=LocalHost;User id=root;password=V1KY0R1;database=master_horas;"

Public Sub FazCombox(ByVal Arquivo As String, Var1 As String, Var2 As String, Var3 As String, Var4 As String, NumCombo As ComboBox)
        Dim Str_Arqui As String = "Select * from " & Arquivo & " order by " & Var1 & """"
        Dim dr_Arqs As MySqlDataReader
        Dim Con_Arqs As New MySqlConnection(StrServ)
        Dim Cmd_Arqs As New MySqlCommand(Str_Arqui, Con_Arqs)
        Con_Arqs.Open()
        dr_Arqs = Cmd_Arqs.ExecuteReader  -> o erro se dá nesta linha
        Try
            If dr_Arqs.HasRows Then
                NumCombo.Items.Clear()
                While dr_Arqs.Read
                    If dr_Arqs(Var3) = "V" Then
                        NumCombo.Items.Add(dr_Arqs(Var2) & " - " & dr_Arqs(Var4))
                    End If
                End While
            End If
            dr_Arqs.Close()
            Con_Arqs.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

Obrigado.

elmo

#484703 - 30/09/2018 20:10:23

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


É tão simples para que complicar.
Public Sub FazCombox(ByVal Arquivo As String, Var1 As String, Var2 As String, Var3 As String, Var4 As String, NumCombo As ComboBox)
  Dim Str_Arqui As String = "Select * from " & Arquivo & " order by " & Var1 & """"  ' O que é isto de vermelho
Não seria mais semples,
Dim Str_Arqui As String = "Select * from Master_horas order by Codigo.



Resposta escolhida #484704 - 01/10/2018 01:17:04

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Evite concatenar da maneira que está fazendo, é muito mais complicado. Use o método Format de string:

Dim Str_Arqui As String = String.Format("Select * from {0} order by {1}", Arquivo, Var1)


_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#484705 - 01/10/2018 01:17:55

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Se o erro persistir, verifique os valores das variáveis envolvidas.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#484711 - 01/10/2018 13:16:39

ELMO01
BELO HORIZONTE
Cadast. em:Agosto/2004


Última edição em 01/10/2018 13:23:10 por ELMO01

KERPLUNK deu certo o que vc me enviou agradeço a vc e ao OMAR2011 por ter respondido.

Este é o resultado final

Public Sub FazCombox(Arquivo As String, Var1 As String, Var2 As String, Var3 As String, Var4 As String, NumCombo As ComboBox)
        Dim Str_Arqui As String = String.Format("Select * from {0} order by {1}", Arquivo, Var1)
        Dim dr_Arqs As MySqlDataReader
        Dim Con_Arqs As New MySqlConnection(StrServ)
        Dim Cmd_Arqs As New MySqlCommand(Str_Arqui, Con_Arqs)
        Con_Arqs.Open()
        dr_Arqs = Cmd_Arqs.ExecuteReader
        Try
            If dr_Arqs.HasRows Then
                NumCombo.Items.Clear()
                While dr_Arqs.Read
                    If dr_Arqs(Var3) = "V" Then
                        NumCombo.Items.Add(dr_Arqs(Var2) & " - " & dr_Arqs(Var4))
                    End If
                End While
            End If
            dr_Arqs.Close()
            Con_Arqs.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub


elmo

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


Tópico encerrado, respostas não sao permitidas
Encerrado por ELMO01 em 01/10/2018 13:23:22