DATAGRIDVIEW
Simples. Use OOP, decore suas propriedades adequadamente e pronto. Em alguns minutos você vai ter muito mais resultado do que dessa maneira procedural.
Citação::
Simples. Use OOP, decore suas propriedades adequadamente e pronto. Em alguns minutos você vai ter muito mais resultado do que dessa maneira procedural.
tens algum material para esse fim, que posso compartilhar para fins didático ?
Tente deste jeito para familiarizar.
With DataGridView2
.DataSource = Nothing
.Rows.Clear()
.ColumnCount = 3
.Columns(0).HeaderText = [Ô]ID[Ô]
.Columns(0).Width = 30
.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(1).HeaderText = [Ô]Descrição[Ô]
.Columns(1).Width = 430
.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(2).HeaderText = [Ô]Preço Compra[Ô]
.Columns(2).Width = 100
.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(2).DefaultCellStyle.Format = [Ô]C2[Ô]
End With
Using con As New FirebirdSql.Data.Firebird.FbConnection([Ô]Server=localhost;User=SYSDBA;Password=masterkey;Database=[Ô] & My.Application.Info.DirectoryPath & [Ô]\Delicias.FDB[Ô])
Try
con.Open()
Dim cmd As New FbCommand([Ô]SELECT * FROM produtos[Ô], con)
Dim dr As FbDataReader
dr = cmd.ExecuteReader
While dr.Read()
DataGridView2.Rows.Add({dr.Item([Ô]CODIGO[Ô]), dr.Item([Ô]DESCRICAO[Ô]), dr.Item([Ô]PRECO_C[Ô])})
End While
Catch ex As FbException
MsgBox(ex.Message)
End Try
End Using
With DataGridView2
.DataSource = Nothing
.Rows.Clear()
.ColumnCount = 3
.Columns(0).HeaderText = [Ô]ID[Ô]
.Columns(0).Width = 30
.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(1).HeaderText = [Ô]Descrição[Ô]
.Columns(1).Width = 430
.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(2).HeaderText = [Ô]Preço Compra[Ô]
.Columns(2).Width = 100
.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(2).DefaultCellStyle.Format = [Ô]C2[Ô]
End With
Using con As New FirebirdSql.Data.Firebird.FbConnection([Ô]Server=localhost;User=SYSDBA;Password=masterkey;Database=[Ô] & My.Application.Info.DirectoryPath & [Ô]\Delicias.FDB[Ô])
Try
con.Open()
Dim cmd As New FbCommand([Ô]SELECT * FROM produtos[Ô], con)
Dim dr As FbDataReader
dr = cmd.ExecuteReader
While dr.Read()
DataGridView2.Rows.Add({dr.Item([Ô]CODIGO[Ô]), dr.Item([Ô]DESCRICAO[Ô]), dr.Item([Ô]PRECO_C[Ô])})
End While
Catch ex As FbException
MsgBox(ex.Message)
End Try
End Using
Amigo Moreira
Vi que vc criou as colunas no DataGrid, provavelmente para poder formatar a fonte, largura, alinhamento, etc das mesmas
Se vc não conseguiu resolver teu problema proceda da seguinte maneira:
Adicione na propriedade DataPropertyName da coluna o nome do campo que vai ser recuperado na consulta
Depois faça a consulta especificando cada coluna com seu respectivo nome
Por exemplo:
Imagine que vc queria Listar os campos D_Nome, D_Aniver, D_cep da tabela clientes
Vc criou três colunas no datagridview e adicionou os seguintes nomes na propriedade DataPropertyName : Nome, Datanasc e CEP
Tua consulta tem que ficar assim
Select D_Nome as Nome, D_Aniver as DataNasc, D_Cep as Cep from Clientes....
Vi que vc criou as colunas no DataGrid, provavelmente para poder formatar a fonte, largura, alinhamento, etc das mesmas
Se vc não conseguiu resolver teu problema proceda da seguinte maneira:
Adicione na propriedade DataPropertyName da coluna o nome do campo que vai ser recuperado na consulta
Depois faça a consulta especificando cada coluna com seu respectivo nome
Por exemplo:
Imagine que vc queria Listar os campos D_Nome, D_Aniver, D_cep da tabela clientes
Vc criou três colunas no datagridview e adicionou os seguintes nomes na propriedade DataPropertyName : Nome, Datanasc e CEP
Tua consulta tem que ficar assim
Select D_Nome as Nome, D_Aniver as DataNasc, D_Cep as Cep from Clientes....
Sequindo o exemplo do amigo OMAR2011...
Ao executa
percebo que carrega valores.
Ao executa
percebo que carrega valores.
depois de abastecer o grid, use isso:
.Columns(0).HeaderText = [Ô]ID[Ô]
.Columns(0).Width = 30
.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(1).HeaderText = [Ô]Descrição[Ô]
.Columns(1).Width = 430
.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(2).HeaderText = [Ô]Cód.Ref.Barra[Ô]
.Columns(2).Width = 120
.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(3).HeaderText = [Ô]Preço Compra[Ô]
.Columns(3).Width = 100
.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(4).HeaderText = [Ô]Preço Venda[Ô]
.Columns(4).Width = 100
.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRigh
.Columns(0).HeaderText = [Ô]ID[Ô]
.Columns(0).Width = 30
.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(1).HeaderText = [Ô]Descrição[Ô]
.Columns(1).Width = 430
.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(2).HeaderText = [Ô]Cód.Ref.Barra[Ô]
.Columns(2).Width = 120
.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(3).HeaderText = [Ô]Preço Compra[Ô]
.Columns(3).Width = 100
.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(4).HeaderText = [Ô]Preço Venda[Ô]
.Columns(4).Width = 100
.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRigh
Try
ConectarBD()
Dim cmd = New FbCommand([Ô]SELECT PCODIGO, DESCRICAO, PRECO_C FROM PRODUTO WHERE DESCRICAO like [ô][Ô] & txt_PesqNome.Text + [Ô]%[Ô] & [Ô][ô][Ô], strConexao)
cmd.CommandType = CommandType.Text
Dim dr As FbDataReader
Dim l As Integer
l = 0
FlexGrid.Rows.Clear()
dr = cmd.ExecuteReader
If dr.HasRows Then
While dr.Read()
[ô][ô][ô][ô]FlexGrid.Rows.Add({dr.Item([Ô]PCODIGO[Ô]), dr.Item([Ô]DESCRICAO[Ô]), dr.Item([Ô]PRECO_C[Ô])}) [ô]SEM USO
[txt-color=#e80000] MsgBox(dr.Item(1))[/txt-color]
End While
End If
dr.Close()
Catch ex As FbException
MsgBox(ex.Message)
Finally
strConexao.Close()
End Try
coloquei assim pra testar e carrega os dados no msgbox. e nada na grid
Quando você usa o preenchimento do Datagridview sem o DataSource deve ser assim.
Você não esta usando como foi mencionado.
With DataGridView2
.DataSource = Nothing
.Rows.Clear()
.ColumnCount = 3
.Columns(0).HeaderText = [Ô]ID[Ô]
.Columns(0).Width = 30
.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(1).HeaderText = [Ô]Descrição[Ô]
.Columns(1).Width = 430
.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(2).HeaderText = [Ô]Preço Compra[Ô]
.Columns(2).Width = 100
.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(2).DefaultCellStyle.Format = [Ô]C2[Ô]
End With
Try
ConectarBD()
Dim cmd = New FbCommand([Ô]SELECT PCODIGO, DESCRICAO, PRECO_C FROM PRODUTO WHERE DESCRICAO like [ô][Ô] & txt_PesqNome.Text + [Ô]%[Ô] & [Ô][ô][Ô], strConexao)
cmd.CommandType = CommandType.Text
Dim dr As FbDataReader
Dim l As Integer
l = 0
FlexGrid.Rows.Clear()
dr = cmd.ExecuteReader
If dr.HasRows Then
While dr.Read()
FlexGrid.Rows.Add({dr.Item([Ô]PCODIGO[Ô]), dr.Item([Ô]DESCRICAO[Ô]), dr.Item([Ô]PRECO_C[Ô])}) [ô]SEM USO
MsgBox(dr.Item(1))
End While
End If
dr.Close()
Catch ex As FbException
MsgBox(ex.Message)
Finally
strConexao.Close()
End Try
Você não esta usando como foi mencionado.
With DataGridView2
.DataSource = Nothing
.Rows.Clear()
.ColumnCount = 3
.Columns(0).HeaderText = [Ô]ID[Ô]
.Columns(0).Width = 30
.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(1).HeaderText = [Ô]Descrição[Ô]
.Columns(1).Width = 430
.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft
.Columns(2).HeaderText = [Ô]Preço Compra[Ô]
.Columns(2).Width = 100
.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(2).DefaultCellStyle.Format = [Ô]C2[Ô]
End With
Try
ConectarBD()
Dim cmd = New FbCommand([Ô]SELECT PCODIGO, DESCRICAO, PRECO_C FROM PRODUTO WHERE DESCRICAO like [ô][Ô] & txt_PesqNome.Text + [Ô]%[Ô] & [Ô][ô][Ô], strConexao)
cmd.CommandType = CommandType.Text
Dim dr As FbDataReader
Dim l As Integer
l = 0
FlexGrid.Rows.Clear()
dr = cmd.ExecuteReader
If dr.HasRows Then
While dr.Read()
FlexGrid.Rows.Add({dr.Item([Ô]PCODIGO[Ô]), dr.Item([Ô]DESCRICAO[Ô]), dr.Item([Ô]PRECO_C[Ô])}) [ô]SEM USO
MsgBox(dr.Item(1))
End While
End If
dr.Close()
Catch ex As FbException
MsgBox(ex.Message)
Finally
strConexao.Close()
End Try
Colega Moreira, você então mudou o jeito de preencher o grid. Você postou no inÃcio que estava preenchendo assim:
Agora você está usando DataReader. Dessa maneira não irá funcionar. Faça da maneira que estava fazendo anteriormente usando o DataSource, assim como o Jaba te disse e depois disso feito, aà você pode alterar as propriedades das colunas da maneira que o Damasceno postou. Eu alteraria apenas a linha do DataSource colocando o ToList().
Private Sub txt_PesqNome_TextChanged(sender As Object, e As EventArgs) Handles txt_PesqNome.TextChanged
Try
ConectarBD()
Dim adaptador As FbDataAdapter
Dim Dados As DataTable
adaptador = New FbDataAdapter([Ô]SELECT PCODIGO, DESCRICAO, REFERENCIA, PRECO_C, PRECO_V FROM PRODUTO WHERE DESCRICAO like [ô][Ô] & [Ô]%[Ô] + txt_PesqNome.Text + [Ô]%[Ô] & [Ô][ô][Ô], strConexao)
Dados = New DataTable
adaptador.Fill(Dados)
FlexGrid.DataSource = Dados //// FlexGrid.DataSource = Dados.ToList()
Catch ex As Exception
MsgBox(ex.Message)
Finally
strConexao.Close()
End Try
End Sub
Agora você está usando DataReader. Dessa maneira não irá funcionar. Faça da maneira que estava fazendo anteriormente usando o DataSource, assim como o Jaba te disse e depois disso feito, aà você pode alterar as propriedades das colunas da maneira que o Damasceno postou. Eu alteraria apenas a linha do DataSource colocando o ToList().
Você PERCIFILHO tem condições e mudar o nome de uma coluna usando o DataSource do Datagridview e adicionar uma linha.
Olhe isto.
.Columns(4).HeaderText = [Ô]Preço Venda[Ô] [ô] Este é da Tabelea [txt-color=#e80000]PRECO_V [/txt-color]
.Columns(4).Width = 100
.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRigh
Para o Moreira,ele tem que criar as colunas antes ou via código.
Olhe isto.
.Columns(4).HeaderText = [Ô]Preço Venda[Ô] [ô] Este é da Tabelea [txt-color=#e80000]PRECO_V [/txt-color]
.Columns(4).Width = 100
.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRigh
Para o Moreira,ele tem que criar as colunas antes ou via código.
Tópico encerrado , respostas não são mais permitidas