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

axpppp

BD para textbox

11 mensagens neste tópico

boas

tou a tentar copiar a informação de uma linha da base de dados para varias textbox, onde as textboxs corresponde a cada um dos campos.

alterar = InputBox("Digite a linha que pretende alterar")
        GroupBox9.Visible = True


        Const constr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\axpp\Ambiente de trabalho\controloantidoping\aplicaçãoantidopping\aplicaçãoantidopping\controlo_antidoping.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

        Dim db As New SqlConnection(constr)

        db.Open()
        Dim varsql As String


        varsql = "select * from controlo_antidoping where [Numero Linha] = @pesquisa"
        Dim cmd As New SqlCommand(varsql, db)
        Dim dr As SqlDataReader
        cmd.Parameters.Add("@pesquisa", SqlDbType.Int).Value = alterar
        dr = cmd.ExecuteReader
        Dim idx_linha As Integer = 0


        While dr.Read
            
            TextBox17.Text = RTrim(dr.Item(1))

            TextBox7.Text = Trim(dr.Item(2))
            TextBox4.Text = Trim(dr.Item(3))
            TextBox16.Text = Trim(dr.Item(4))
            TextBox15.Text = Trim(dr.Item(5))
            TextBox8.Text = Trim(dr.Item(6))
            TextBox14.Text = Trim(dr.Item(7))

            TextBox12.Text = Trim(dr.Item(8))
            TextBox10.Text = Trim(dr.Item(9))
            TextBox5.Text = Trim(dr.Item(10))
            TextBox13.Text = Trim(dr.Item(11))
            TextBox11.Text = Trim(dr.Item(12))
            TextBox9.Text = Trim(dr.Item(13))
            idx_linha = idx_linha + 1

        End While
        dr.Close()
        db.Close()

nao sei se é relevante mas as textbox encontram se todas num groupbox...

cumpz :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E qual é o erro, em que linha dá erro, o que não está a fazer, etc ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao da erro nenhum...mas tambem nao aparece nada nas textboxs...e eu ja andei a fazer um debugging e acho que ele nao entra no while .....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

alguem sabe como faz isto???

pela logica é facil...mas como nao aparecem os valores nas textboxs...ja nem digo nada  :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim...eu nao sei porque mas o programa chega ao ciclo while e avança simplesmente... nao atribui os valores da linha da base de dados as textbox....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não é mais facil guardares isso no dataset e depois então passar a informação para as textbox??

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

experimenta testar se retorna linhas

if dr.hasrows then

msgbox "Tem registos"

end if

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Posso estar a asneirar, mas os reader para tirarem dados não é preciso especificar o que se vai tirar? tipo textbox.Text = dr.getString(numcoluna) ??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja consegui :)

obrigado a todos a ajuda

Const constr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\axpp\Ambiente de trabalho\controloantidoping\aplicaçãoantidopping\aplicaçãoantidopping\controlo_antidoping.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

        Dim db As New SqlConnection(constr)

        db.Open()

        Dim varsql As String

        varsql = "select * from controlo_antidoping where linha = @pesquisa"

        Dim cmd As New SqlCommand(varsql, db)
        Dim dr As SqlDataReader
        alterar = InputBox("Digite a linha que pretende alterar")
        cmd.Parameters.Add("@pesquisa", SqlDbType.Int).Value = alterar
        dr = cmd.ExecuteReader


        While dr.Read
            TextBox19.Text = Trim(dr.Item(0))
            TextBox17.Text = RTrim(dr.Item(1))
            TextBox7.Text = Trim(dr.Item(2))
            TextBox4.Text = Trim(dr.Item(3))
            TextBox16.Text = Trim(dr.Item(4))
            TextBox15.Text = Trim(dr.Item(5))
            TextBox8.Text = Trim(dr.Item(6))
            TextBox14.Text = Trim(dr.Item(7))
            TextBox12.Text = Trim(dr.Item(8))
            TextBox10.Text = Trim(dr.Item(9))
            TextBox5.Text = Trim(dr.Item(10))
            TextBox13.Text = Trim(dr.Item(11))
            TextBox11.Text = Trim(dr.Item(12))
            TextBox9.Text = Trim(dr.Item(13))

           
        End While

        DataGridView1.AutoResizeColumnHeadersHeight()
        DataGridView1.AutoResizeColumns()
        DataGridView1.AutoResizeRows()


        dr.Close()
        db.Close()

:cheers:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Posso estar a asneirar, mas os reader para tirarem dados não é preciso especificar o que se vai tirar? tipo textbox.Text = dr.getString(numcoluna) ??

Não... podes eventualmente obter o tipo de field que está a retornar..

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