Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

rafaelsantos

Problema com Data Reader e inserção na combobox.

Mensagens Recomendadas

rafaelsantos

Estou com o problema quando estou a carregar de uma tabela para uma combobox. Não estou a perceber qual o problema. Imaginem que tenho 4 dados na tabela. O programa não carrega o primeiro e carrega todos os outros. Se tivesse 6 dados nao carregava o primeiro e carregava os outros todos. Ou seja nunca carrega o primeiro, não percebo :S.

 'carregar a combobox das turmas
        conn.ConnectionString = "Server=s1pc2\SQLEXPRESS; Initial Catalog=BdAlunos; Trusted_Connection=True"
        conn.Open()
        Dim drauxiliar As SqlClient.SqlDataReader
        Dim sql = "Select Cod_Turma From Turmas"
        Dim cmduser = New SqlClient.SqlCommand(sql, conn)
        drauxiliar = cmduser.ExecuteReader
        If drauxiliar.Read Then
            Do While drauxiliar.Read()
                cbbcodturma.Items.Add(drauxiliar(0))
            Loop
        Else
                MsgBox("Não pode inserir alunos sem haver turmas. Introduza primeiro pelo menos uma turma.", MsgBoxStyle.Critical, "Erro")
        End If
        conn.Close()

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

"If drauxiliar.Read Then" lê logo o primeiro. Quando fazes "Do While drauxiliar.Read()" já estás no segundo :P

Substitui o if por "If drauxiliar.HasRows Then"

De qualquer modo devias utilizar um SqlDataAdapter. Mais ou menos isto:

                  Using da As New SqlDataAdapter("Select Cod_Turma From Turmas", conn)
                    da.SelectCommand.CommandType = CommandType.Text

                    Using ds As New DataSet
                        da.Fill(ds)

                        With cbo
                            .DisplayMember = "descricao"
                            .ValueMember = "id"
                            .DataSource = ds.Tables(0).DefaultView
                        End With

                    End Using

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
paulo silva

Dim conexao As New SqlConnection
        Dim meuDataReader As SqlDataReader
        Dim meuComando As SqlCommand
     

        conexao.ConnectionString = "Server=s1pc2\SQLEXPRESS; Initial Catalog=BdAlunos; Trusted_Connection=True"
  
        meuComando = New SqlCommand("Select Cod_Turma From Turmas", conexao)

            Try
                conexao.Open()
                meuDataReader = meuComando.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
                cbbcodturma.DataSource = meuDataReader
                cbbcodturma.DataValueField = Cod_Turma 
                cbbcodturma.DataTextField = Descricao
                cbbcodturma.DataBind()
            Catch ex As Exception
            Finally
                conexao.Dispose()
                meuComando.Dispose()
            End Try

Tenta assim

Cumprimentos Paulo Silva

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.