• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Chamuanza

O que Falta no Select

9 mensagens neste tópico

Bem aja pessoal

O que falta neste select para funcionar.

A linha referente ao select não aparece na grid, embora active a mesma

Obrigado

Dim conn As New OleDbConnection()
        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\AgendaAnosVB6\AgendaAnosNova\AgendaAnos.mdb"
        Dim ds As New DataSet
        Dim cmd As OleDbCommand = conn.CreateCommand
        Dim DataMes As Date = Today

        cmd.CommandText = "Select Nome, Sobrenome, Endereco, Nascimento " & _
                         "From Amigos " & _
                         "Where Nome = 'Maria'"

        conn.Open()

        Dim leitor As OleDbDataReader = cmd.ExecuteReader()


        Try
            ds = New DataSet("Amigos")
            AmigosDataGridView.DataSource = ds.Tables("Amigos")

            leitor.Close()
            conn.Close()

        Catch erro As Exception
            MsgBox("Erro " & vbCrLf & erro.ToString, MsgBoxStyle.Critical, "Erro")
        End Try

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estás aí a misturar DataReader com DataSet.

Só vais usar um dos 2.

Se optares por DataReader fazes assim:

http://www.startvbdotnet.com/ado/sqlserver.aspx

Se escolheres DataSet:

http://www.exforsys.com/tutorials/vb.net-2005/access-and-manipulate-data-using-datasets.html

Uma observação: No controlo de excepções acrescenta um finally com um Close á ligação da BD, para garantires que é sempre fechada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pela atenção bruno1234

Aos exemplos que me deste fui buscar o codigo abaixo descrito, penso que seja isto, mas como passo os dados para a grid?

 Dim cn As OleDbConnection
        Dim cmd As OleDbCommand
        Dim dr As OleDbDataReader


        Try

            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\AgendaAnosVB6\AgendaAnosNova\AgendaAnos.mdb")
            'provider to be used when working with access database

            cn.Open()
            cmd = New OleDbCommand("Select Nome, Sobrenome, Endereco, Nascimento " & _
                             "From Amigos " & _
                             "Where Nome = 'Maria'", cn)

            dr = cmd.ExecuteReader
            While dr.Read()

                'TextBox1.Text = dr(0)
                'TextBox2.Text = dr(1)
                'TextBox3.Text = dr(2)
                ' loading data into TextBoxes by column index
            End While

            dr.Close()
            cn.Close()

        Catch erro As Exception
            MsgBox("Erro " & vbCrLf & erro.ToString, MsgBoxStyle.Critical, "Erro")
        End Try

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

podes criar uma lista de uma classe conhecida por exemplo.

Troca:

'TextBox1.Text = dr(0)
'TextBox2.Text = dr(1)
TextBox3.Text = dr(2)

por:

MinhaClasse minhaClasse = new MinhaClasse();
minhaClasse.A = dr(0);
minhaClasse.B = dr(1);
minhaClasse.C = dr(2);
lista.Add(minhaClasse);

em que:

- tens uma List<MinhaClasse> lista instanciada.

- A, B e C são Propriedades da MinhaClasse.

Depois mete na GridView:

grid.DataSource = lista;
grid.DataBind();

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não entendo a criação de uma lista de uma classe

no form quando abre tenho uma tenho uma "AmigosDataGridView" criada com o wizard

o que pretendo é colocar os dados do select nessa grid

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Criar uma lista de uma classe é fazer:

List<MinhaClasse> lista = new List<MinhaClasse>();

Isto é a sintaxe em C#, em vb .net n sei, mas n há-de ser mto diferente.

A construção de grids por wizards nunca experimentei, normalmente escrevo o código todo que preciso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois é, mas eu sou maçarico nestas andanças e estou a funcionar com VB Net

O select funciona, pois testei introduzindo 4 cx  de texto e atribuindo  TextBox2.Text = dr(1)

TextBox3.Text = dr(2) e sucessivamente, e os dados aparecem, mas como tenho a grid é mais pratico expor os dadosna grid.

Deve haver alguem que consiga dar-me uma dica

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A lista serve mesmo para fazer o DataBind à tua grid.

A grid fica com os dados que estão na lista.

Se for uma grid de windows forms, basta afectares o valor da propriedade DataSource com a lista e fica feito.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vê se isto ajuda.

Onde tens

  
ds = New DataSet("Amigos")
AmigosDataGridView.DataSource = ds.Tables("Amigos")

Tenta assim:

AmigosDataGridView.DataSource = ds
AmigosDataGridView.DataMember = "Amigos"

Vendo bem parece me que vai dar ao mesmo.. Espero ter ajudado.

0

Partilhar esta mensagem


Link 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