borges02 0 Denunciar post Postado Dezembro 4, 2008 Boa tarde! Gostaria de saber como faço para obter a posição do registro no DataTable usando o método find() do DataTable? Parece que tem que criar um PrimaryKey, mas não sei como criar e nem como usar esse método. Alguem tem alguma idéia de como achar a posição? Estou programando em visual studio 2008 (C#) windows forms.... Desde já, agradeço pela ajuda e atenção de todos... Muito Obrigado... Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Dezembro 4, 2008 Acho que é o que você esta querendo: http://www.devnewsgroups.net/group/microso...topic16369.aspx Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Dezembro 4, 2008 Ola Borges. Veja um exemplo que fiz que uso num formulario de cadastro de pedidos que tenho com navegação de registros onde, para navegar entre os registros, pego, através de chave primaria, posição do registro na tabela e mando esse datarow(posição do registro) na tabela (datatable) e mando para uma função exibir os registros. Veja: Public Sub CarregaPagina() Dim sqlpedidos As String = "select p.pedidoID, p.clienteID, p.ativo, p.data, c.nome as nome from pedidos p inner join clientes c ON p.clienteID = c.clienteID where p.ativo='S' order by pedidoID" ds = accDb.ExecuteDS(sqlpedidos, TabelaPedidos) dt = ds.Tables(tabelapedidos) registropedidos = dt.Rows.Count - 1 ' com primarykey dt.PrimaryKey = New DataColumn() {dt.Columns(0)} dr = dt.Rows.Find(registropedidos) registropedidos = dt.Rows.IndexOf(dr) ' aqui acho a posição do registro na tabela ' com primarykey desabilita() If dt.Rows.Count = 0 Then Primeiro.Enabled = False Anterior.Enabled = False Proximo.Enabled = False Ultimo.Enabled = False Atualizar.Enabled = False Eliminar.Enabled = False End If If dt.Rows.Count > 0 Then registropedidos = 0 Primeiro_Click(Nothing, Nothing) ' e aqui, dou um toque no Botão "Primeiro" Else registropedidos = -1 End If End Sub No Load do form faço apenas a chamada para esta procidure: Private Sub Pedidos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'carrega pedidos CarregaPagina() End SubE, nos botões faço: Private Sub Primeiro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Primeiro.Click registropedidos = 0 exibirDados(registropedidos) listaitens() End Sub Private Sub Anterior_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Anterior.Click registropedidos = registropedidos - 1 If registropedidos < 0 Then registropedidos = 0 exibirDados(registropedidos) listaitens() End Sub Private Sub Proximo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Proximo.Click Dim i As Integer = dt.Rows.Count - 1 registropedidos = registropedidos + 1 If registropedidos > i Then registropedidos = i exibirDados(registropedidos) listaitens() End Sub Private Sub Ultimo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Ultimo.Click registropedidos = dt.Rows.Count - 1 exibirDados(registropedidos) listaitens() End SubAh tomai tb a função exibirDados onde eu informo a variavel registropedidos que é exatamente a posição do registro no DataTable usando o método find() do DataTable ou seja, o que você quer .Bom estudo e qualquer duvida poista e de novo ok? Private Sub exibirDados(ByVal m As Integer) Dim i As Integer = dt.Rows.Count - 1 If m < 0 OrElse i < 0 Then Exit Sub dr = dt.Rows(m) LabelCodigoPed.Visible = True codigoped.Visible = True codigoped.Text = dr("pedidoID") codigocli.Text = dr("clienteID") cliente.Text = dr("nome") data.Text = dr("data") End Sub Agora é só adaptar ao teu código Compartilhar este post Link para o post Compartilhar em outros sites
borges02 0 Denunciar post Postado Dezembro 5, 2008 Opa, adaptei ao meu código, testei e deu certo, era isso que eu estava precisando mesmo. Valeu Carcleo e Quintelab, muito obrigado pelos exemplos, dicas, sugestões e ajuda, valeu mesmo... Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Dezembro 5, 2008 Ok. Estamos ai é para ajudar mesmo. Um abraço! Compartilhar este post Link para o post Compartilhar em outros sites