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

malainhocf

Qual a melhor maneira de preencher uma datagridwiew com dados do SQL SERVER

Mensagens Recomendadas

ribeiro55

Para mim, a maneira mais directa é encher uma DataTable com o Fill do DataAdapter, e dar a DataTable ao DataSource da DataGridView.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
malainhocf

No livro da fca tem uma maneira mas bastante complexa

Tem assim

--------------------------------------------------------------

Private Sub frmMedicos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' Mostra os médicos
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
        DataGridView1.AllowUserToAddRows = False
        DataGridView1.AllowUserToDeleteRows = False
        DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically

        Dim adapter_medicos As New consultasDataSetTableAdapters.medicosTableAdapter
        Dim tab_medicos As New consultasDataSet.medicosDataTable

        adapter_medicos.Fill(tab_medicos)

        Dim coluna As DataColumn
        For Each coluna In tab_medicos.Columns
            DataGridView1.Columns.Add(coluna.ColumnName, coluna.ColumnName)
        Next

        Dim linha As DataRow
        Dim idx_linha As Integer
        Dim idx_coluna As Integer

        idx_linha = 0

        For Each linha In tab_medicos.Rows
            Dim linha_datagrid As New DataGridViewRow
            DataGridView1.Rows.Add(linha_datagrid)
            idx_coluna = 0

            For Each coluna In tab_medicos.Columns
                DataGridView1.Rows(idx_linha).Cells(idx_coluna).Value = tab_medicos.Rows(idx_linha).Item(idx_coluna)
                idx_coluna = idx_coluna + 1
            Next
            idx_linha = idx_linha + 1
        Next
    End Sub

--------------------------------------------------------------

É bem complicado isso


Cumprimentos

Cesar Oliveira

Desenvolvo websites e aplicações web

http://www.profissionalweb.net

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Sim, é um pouco moroso.

Depois de:

adapter_medicos.Fill(tab_medicos)

bastava

DataGridView1.DataSource = tab_medicos


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

O mínimo dos mínimos:

            Dim connString As String = "..."
            Using da As New SqlDataAdapter("SELECT * FROM tabela", connString)
                Using ds As New DataSet
                    da.Fill(ds)
                    Me.DataGridView1.DataSource = ds.Tables(0).DefaultView
                End Using
            End Using

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Gooden

O mínimo dos mínimos:

            Dim connString As String = "..."
            Using da As New SqlDataAdapter("SELECT * FROM tabela", connString)
                Using ds As New DataSet
                    da.Fill(ds)
                    Me.DataGridView1.DataSource = ds.Tables(0).DefaultView
                End Using
            End Using

exatamente. ou se nao se usares isso em muitos sitios fazes uma funçao que das a datagrid (byref) e a query e depois e so chamar a funçao :(

tipo

PreencheGrid(datagridview1,"Select idcliente nome from clientes")

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Vai tal e qual como vem da base de dados.

Cada coluna da datagridview obedece ao datatype da base de dados.

Agora, se o que estás a querer saber é se ela adivinha que uma string a que chames data, é para formatar como data... não adivinha.

Aí terias de usar ali a técnica do livro, para controlares tudo o que entra, e como entra.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

Agora, se o que estás a querer saber é se ela adivinha que uma string a que chames data, é para formatar como data... não adivinha.

Aí terias de usar ali a técnica do livro, para controlares tudo o que entra, e como entra.

Não obrigatóriamente!

Podes sempre formatar após carregares os dados. Exemplo:

Me.DataGridView1.Columns("ID").DefaultCellStyle.Format = "dd-MM-yyyy"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Olha, bem lembrado :(

Aí tens malainhocf :(


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Percebi a dica, muito obrigado

Estou sempre a aprender

Estamos sempre a aprender.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Eu pessoalmente gosto de usar wizards com unha a unha e não vejo mal nenhum.

Mas cabe a cada um decidir o que melhor gosta.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

Eu pessoalmente gosto de usar wizards com unha a unha e não vejo mal nenhum.

Mas cabe a cada um decidir o que melhor gosta.

Quando começares a querer flexibilidade, controlo do código e melhor diagnóstico, deixas de usar wizards :(

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Quando começares a queres flexibilidade, controlo do código e melhor diagnóstico, deixas de usar wizards :(

Podes-me dar exemplos em concreto? Eu de alguma forma concordo contigo, no php, pelo menos no dreamweaver, existem certos "wizards", por exemplo de autenticação, e pessoalmente prefiro unha a unha porque podem surgir problemas devido aos wizards.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
malainhocf

No ColdFusion gosto de escrever tudo a unha, só uso o dreamweaver para me ajudar a escrever o código e para ser mais rápido a escrever o código

No PHP também é como com o ColdFusion,

Mas não existe linguagem mais fácil de aprender do que o ColdFusion


Cumprimentos

Cesar Oliveira

Desenvolvo websites e aplicações web

http://www.profissionalweb.net

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
malainhocf

E se o campo for um campo chamado activo em que tanto pode ter na base de dados um S ou um N e eu quero formatar o S para Sim e o N para Não

Posso fazer isso ?

Obrigado


Cumprimentos

Cesar Oliveira

Desenvolvo websites e aplicações web

http://www.profissionalweb.net

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
passado

Existe outras formas, que depois de carregares os dados testas o que esta na celula e consuante isso ele altera o conteudo, eu usava este método para colocar imagens consoante o que a base de dados tinha 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ByMySlf

Existe outras formas, que depois de carregares os dados testas o que esta na celula e consuante isso ele altera o conteudo, eu usava este método para colocar imagens consoante o que a base de dados tinha 

Como é óbvio, existem sempre várias formas de fazer as coisas.

Mas se já está a efectuar uma query à BD para trazer os dados e tem a possibilidade que estes venham devidamente formatados, acho desnecessário andar a efectuar a formatação dos mesmos através do código.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
passado

Como é óbvio, existem sempre várias formas de fazer as coisas.

Mas se já está a efectuar uma query à BD para trazer os dados e tem a possibilidade que estes venham devidamente formatados, acho desnecessário andar a efectuar a formatação dos mesmos através do código.

Parti do principio que ele poderia nao saber fazer a formatação, alteração na query...

e dar a conhecer outras formas poderia ele nao conhecer de por exemplo em vez de texto colocar imagens....

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
malainhocf

Olá, bom dia,

Dêm-me um exemplo como posso fazer isso na consulta a base de dados e como alterar os campos depois deles já terem sido colocados na datagridview

Obrigado


Cumprimentos

Cesar Oliveira

Desenvolvo websites e aplicações web

http://www.profissionalweb.net

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ByMySlf

Parti do principio que ele poderia nao saber fazer a formatação, alteração na query...

e dar a conhecer outras formas poderia ele nao conhecer de por exemplo em vez de texto colocar imagens....

Exacto, passado. Com a minha resposta apenas estava a referir qual achava a melhor forma de o fazer.

malainhocf, agora estou sem tempo, mas assim que seja possível tento explicar.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ByMySlf

Na query SQL metes algo como isto...

CASE WHEN nomedocampo='S' THEN 'SIM' WHEN nomedocampo='N' THEN 'NÃO' END as nomedocampo

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.