dipacheco 0 Posted March 2, 2011 Report Share Posted March 2, 2011 Pessoal... este código que vou postar em baixo nao deveria preencher a tabela toda com os valores do reader?? command = New SqlCommand("SELECT Data1,Data2 FROM Teste WHERE Codigo ='" & teste.TextBox2.Text & "'", connect) reader = command.ExecuteReader Dim tabela As New DataTable tabela.Load(reader) É que depois faço um teste e ele só tem dados na row(0) e na row(1) e sao os ultimos dados lidos no reader... os primeiros nao ficam. Link to post Share on other sites
Caça 17 Posted March 2, 2011 Report Share Posted March 2, 2011 Porque é que não preenches directamente o DataTable através de um DataAdatpter? Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted March 2, 2011 Author Report Share Posted March 2, 2011 nao sei fazer isso! LOL por isso é q n fiz! Link to post Share on other sites
Caça 17 Posted March 2, 2011 Report Share Posted March 2, 2011 Tipo isto Dim Da As New SqlClient.SqlDataAdapter("Consulta SQL", "Conecção à Base de Dados") Dim Dt As New DataTable Da.Fill(Dt) Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted March 2, 2011 Author Report Share Posted March 2, 2011 era suposto ao fazer este codigo ela dar resultados... certo? For Each row2 As DataRow In tabela.Rows TextBox5.Text = row2(2) & " ------- " & row2(3) Next eu tenho pelo menos 6 dados que o meu select deveria retornar... Link to post Share on other sites
Caça 17 Posted March 2, 2011 Report Share Posted March 2, 2011 Certo Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted March 2, 2011 Author Report Share Posted March 2, 2011 mas nao retorna nada... lol fica a textbox vazia... Dim command2 As New SqlClient.SqlDataAdapter("SELECT DataI,Sintomatologia FROM Consulta WHERE Codigo ='" & menuconsulta.TextBox2.Text & "'", connect) Dim tabela As New DataTable command2.Fill(tabela) For Each row As DataRow In tabela.Rows TextBox5.Text = row(2) & " ------- " & row(3) Next Link to post Share on other sites
Caça 17 Posted March 2, 2011 Report Share Posted March 2, 2011 Quantas linhas está a retornar? Verifica se está a entrar no ciclo. Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted March 2, 2011 Author Report Share Posted March 2, 2011 está a retornar a 2 linhas passo a explicar... na minha tabela sql tem varios codigos iguais (que tenho que ter), e ao encontrar esse codigo ele deveria tirar data e sintomas. Tipo: Codigo Data Sintomas 1 23-02 X 1 24-02 Y 2 24-02 Z 1 25-02 Q Com o código que eu estou a fazer ele retorna a data da primeira linha e o sintoma da 2ª, ao pesquisar por codigo = 1. Porque será? Link to post Share on other sites
Caça 17 Posted March 2, 2011 Report Share Posted March 2, 2011 Os indexes começam em zero Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted March 2, 2011 Author Report Share Posted March 2, 2011 NOTA: quando fazia com executereader ele sacava os dados todos... so q eu n colocava numa datatable... mas agora preciso ... basicamente preciso d criar a datatable com 2 colunas... e escrever o reader(0) e o reader(1) em colunas A,B... em ciclo enquanto reader.read Como se faz isto? Link to post Share on other sites
dipacheco 0 Posted March 2, 2011 Author Report Share Posted March 2, 2011 mesmo começando em zero deveria dar algo... como posso imprimir a tabela toda? Link to post Share on other sites
Caça 17 Posted March 2, 2011 Report Share Posted March 2, 2011 Já te certificaste se está a entrar no ciclo? Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted March 2, 2011 Author Report Share Posted March 2, 2011 Dim aux As Integer = 0 For Each row As DataRow In tabela.Rows 'TextBox5.Text = row(aux) MsgBox(row(aux)) aux += 1 Next Só imprime 2 valores... quando deveria imprimir 6! Link to post Share on other sites
dipacheco 0 Posted March 2, 2011 Author Report Share Posted March 2, 2011 e pior... o select pede 2 campos quando o codigo é 1... ele envia o 1º campo da primeira vez q encontra o codigo 1 e o 2º campo da segunda vez q encontra o codigo 1 qnd deveria mandar 1º e 2º campos mal encontrasse o codigo 1 Link to post Share on other sites
Caça 17 Posted March 2, 2011 Report Share Posted March 2, 2011 Sabes o que estás a fazer?? Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted March 2, 2011 Author Report Share Posted March 2, 2011 como assim? lol eu fiz o q m disseste para fazer com o sqldataadapter... basicamente. pensei q preenchesse a tabela toda qnd fiz command2.fill(tabela) e nao o está a fazer. Link to post Share on other sites
Caça 17 Posted March 2, 2011 Report Share Posted March 2, 2011 For Each dr As DataRow In DT.Rows MsgBox(dr(0)) 'Devolve o registo da coluna 0 não o registo da linha 0.. Next Isto é um For Each não é um For normal Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
dipacheco 0 Posted March 2, 2011 Author Report Share Posted March 2, 2011 entendi... obrigado... ha maneira de aceder a uma linha especifica para sacar os dados sem correr um ciclo for? tipo... imagina que quero a primeira linha da tabela (coluna 1 e 2) para uma textbox. posso fazer isto? Link to post Share on other sites
Caça 17 Posted March 2, 2011 Report Share Posted March 2, 2011 TextBox1.Text = DT.Rows(0)(0) & "-----" & DT.Rows(0)(1) Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now