Jump to content
Sign in to follow this  
Kraydoz

Listbox

Recommended Posts

Kraydoz

Boas pessoal,

Tenho um problema.. tenho uma listbox ligada a base de dados e uma textbox, e quero que apresente um valor da base de dados daquela linha que seleccionei (listbox).

  Private Sub ListBox1_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedValueChanged

        Try
            Dim sqlStr1 = "SELECT * FROM dbo.mensagem WHERE idmensagem = idmensagem"
            uti.Open()
            Dim frmComm1 As New SqlClient.SqlCommand(sqlStr1, uti)
            Dim frmReader1 = frmComm1.ExecuteReader(CommandBehavior.SingleRow)
            While frmReader1.Read
                Me.TextBox1.Text = (Trim(frmReader1("corpomensagem")))
                'Me.TextBox1.Text .Items.Add(" De: " + nome + "  ||  Para: " + para + "  ||  Data: " + hora))

            End While
            uti.Close()
        Catch es As Exception
            MsgBox(Err.Description)
        End Try
    End Sub

Gostaria de saber como se faz :D

Algumas ideias??? 

Share this post


Link to post
Share on other sites
HIT_Braga

Boas

Base de dados oracle,Access ?!!?


" Elogios não me elevam, ofensas não me rebaixam, sou o que sou e não o que acham! "

Share this post


Link to post
Share on other sites
Kraydoz

Estou a utilizar SQL.

Só queria que ao carregar num item da listbox, apresenta-se o resultado numa textbox.

Será algum evento no vb?

Share this post


Link to post
Share on other sites
Caça

Utiliza o evento SelectedIndexChanged da ListBox, para apanhares o valor, podes colocar por exemplo

TextBox1.Text = ListBox1.SelectedItem.ToString


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Kraydoz

Ainda nao funciona :)

Ele so vai buscar o primeiro valor da base de dado.. nao sei porque :s

Share this post


Link to post
Share on other sites
Kraydoz

Utiliza o evento SelectedIndexChanged da ListBox, para apanhares o valor, podes colocar por exemplo

TextBox1.Text = ListBox1.SelectedItem.ToString

Eu até meti assim

 Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

        Dim MsgIndex As Integer = ListBox1.SelectedIndex + 1
        Try
            Dim sqlStr1 = "SELECT * FROM dbo.mensagem WHERE idmensagem = idmensagem"
            uti.Open()
            Dim frmComm1 As New SqlClient.SqlCommand(sqlStr1, uti)
            Dim frmReader1 = frmComm1.ExecuteReader(CommandBehavior.SingleRow)
            While frmReader1.Read
                Me.TextBox1.Text = (ListBox1.SelectedItem.ToString & frmReader1("corpomensagem"))
                'Me.TextBox1.Text = (Trim(frmReader1("corpomensagem")))
               
            End While
            uti.Close()
        Catch es As Exception
            MsgBox(Err.Description)
        End Try
    End Sub

Share this post


Link to post
Share on other sites
Caça

Não estás a indicar o parâmetros, tenta assim

Dim sqlStr1 = "SELECT * FROM dbo.mensagem WHERE idmensagem = @idmensagem"
uti.Open()
Dim frmComm1 As New SqlClient.SqlCommand(sqlStr1, uti)
frmComm1.Parameters.Add("@idmensagem", SqlDbType.Int).Value = ListBox1.SelectedItem
'(...)


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Kraydoz

  Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

        Try

            'Dim sqlStr1 = "SELECT * FROM dbo.mensagem WHERE idmensagem = @idmensagem"
            'uti.Open()
            'Dim frmComm1 As New SqlClient.SqlCommand(sqlStr1, uti)
            'frmComm1.Parameters.Add("@idmensagem", SqlDbType.Int).Value = ListBox1.SelectedItem

            Dim sqlStr1 = "SELECT * FROM dbo.mensagem WHERE idmensagem = idmensagem"
            uti.Open()
            Dim frmComm1 As New SqlClient.SqlCommand(sqlStr1, uti)
            Dim frmReader1 = frmComm1.ExecuteReader(CommandBehavior.SingleRow)
            While frmReader1.Read
                Me.TextBox1.Text = (ListBox1.SelectedItem.ToString & frmReader1("corpomensagem"))
                'Me.TextBox1.Text = (Trim(frmReader1("corpomensagem")))

            End While
            uti.Close()
        Catch es As Exception
            MsgBox(Err.Description)
        End Try
    End Sub

O que preciso é quando carrego num valor do listbox, aparece o que esta na base de dados, mas so aparece o primeiro da base de dados, nao percebo.

Share this post


Link to post
Share on other sites
Caça

Tens o código que te dei comentado... esse é que tem de funcionar, não o anterior.


Está a dar erro? Quais são os valores da Listbox?


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Kraydoz

Nao me dá erro, simplesmente nao aparece nada :)

Os valores da listbox estão no SQL.

Ou Seja

O que estou a fazer é um sistema de mensagens interno.

E a pessoa escreve a mensagem numa textbox, escolhe para quem quer enviar numa combobox, e quando envia os valores ficam guardados na base de dados SQL e quero que quando se carrega no item da listbox apareça os valores que estao na base de dados.

Share this post


Link to post
Share on other sites
Caça

Supondo que os itens da Listbox são os ID's de mensagem, este código tem de funcionar...

Substitui o teu código por este

        Try
            Dim sqlStr1 = "SELECT * FROM dbo.mensagem WHERE idmensagem = @idmensagem"
            uti.Open()
            Dim frmComm1 As New SqlClient.SqlCommand(sqlStr1, uti)
            frmComm1.Parameters.Add("@idmensagem", SqlDbType.Int).Value = ListBox1.SelectedItem
            Dim frmReader1 = frmComm1.ExecuteReader(CommandBehavior.SingleRow)
            While frmReader1.Read
                Me.TextBox1.Text = (ListBox1.SelectedItem.ToString & frmReader1("corpomensagem"))
                'Me.TextBox1.Text = (Trim(frmReader1("corpomensagem")))
            End While
            uti.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Kraydoz

Diz que nao é possível converter o valor do parâmetro de string para interger32

Share this post


Link to post
Share on other sites
Caça

Qual é o tipo de dados do campo IdMesnagem? Onde tem SqlDbType.Int, troca por SqlDbType.O_seu_tipo_de_dados


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Kraydoz

Mas é do tipo interger.

Será que nao é um evento??

que ao fazer um clique numa da listbox ele escolha a correcta da base de dados?

Share this post


Link to post
Share on other sites
Caça

Troca

frmComm1.Parameters.Add("@idmensagem", SqlDbType.Int).Value = ListBox1.SelectedItem

por

frmComm1.Parameters.Add("@idmensagem", SqlDbType.Int).Value = CInt(ListBox1.SelectedItem)

e testa


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Kraydoz

Diz,

A converçao para a cadeia "De: Kraydoz || bla bla...." para o tipo 'interger' nao é valida .

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.