Jump to content
aesp

[VB.NET] De datagrid para textbox

Recommended Posts

aesp

Boas,  :)

A minha dúvida é a seguinte tenho um formulário que contem um datagrid e uma conexão à minha base de dados em MySQL, e tenho um dialog de edição de dados que me pede qual o ID do dos dados que queremos alterar até aqui tudo bem. Agora o que eu queria é que depois do utilizador colocar o ID aparecer todos os campos referentes aquele ID numas textbox's.

    Imports MySql.Data.MySqlClient
    Imports System.Data
    
    Private myConnection As MySql.Data.MySqlClient.MySqlConnection
    Private myCommand As New MySqlCommand
    Private myAdapter As New MySqlDataAdapter
    Private myData As New DataTable
    Private SQL As String

        Dim teste As Integer
        teste = InputBox("Indice o número de aluguer que pretende alterar.", "Pesquisa de aluguer")

        myData.Clear()
        myConnection = New MySqlConnection("server=localhost;uid=*;pwd=*;database=aluguer")
        SQL = "Select * From aluguer WHERE aluguer.IDAluguer LIKE '" & teste & "'"
        myConnection.Open()
        Try
            myCommand.Connection = myConnection
            myCommand.CommandText = SQL

            myAdapter.SelectCommand = myCommand
            myAdapter.Fill(myData)
            FormAlugueres.DGVAlugueres.DataSource = myData
            TextBox1IDAluguer.Text = ""
        Catch myerro As MySqlException
            MsgBox("Erro de leitura: " & myerro.Message)
        End Try
        myConnection.Close()

Obrigado  :)

Share this post


Link to post
Share on other sites
bioshock

Só agora é que vi aquele teu código. Aquilo está um bocado mal organizado.

aqui como fazer algo mais simples e também mais organizado. Basta que troques as connections para MySQL.

Share this post


Link to post
Share on other sites
aesp

        Dim teste As Integer
        teste = InputBox("Indice o número de aluguer que pretende alterar.", "Pesquisa de aluguer")

        Dim ConnectionString As New MySqlConnection("server=localhost;uid=*;pwd=*;database=aluguer")
        Dim query As String = "Select * From aluguer WHERE aluguer.IDAluguer LIKE '" & teste & "'"

        Dim DataAdapter As New MySqlDataAdapter(query, ConnectionString)
        Dim MyData As New DataSet
        DataAdapter.Fill(MyData, "aluguer")
        FormAlugueres.DGVAlugueres.DataSource = MyData.Tables("aluguer") 'DGVAlugueres é o datagrid
        TextBox1IDAluguer.Text = MyData.Tables("aluguer").Rows(1).Item("IDAluguer") 'este código é para aqui?

    End Sub

Inseri as dúvidas em comentário no código, continuam sem funcionar  :confused:

Share this post


Link to post
Share on other sites
bioshock

Sim..que erro dá?

Visto que estás a usar a restrição (WHERE) deves dizer antes (a diferença está no 0):

MyData.Tables("aluguer").Rows(0).Item("IDAluguer")

Btw, caso não dê, altera lá esse teu código para este:


        Dim ConnectionString As New MySqlConnection("server=localhost;uid=*;pwd=*;database=aluguer")
        Dim query As String = "SELECT * FROM aluguer"

        Dim DataAdapter As New MySqlDataAdapter(query, ConnectionString)
        Dim MyData As New DataSet
        DataAdapter.Fill(MyData, "aluguer")
        FormAlugueres.DGVAlugueres.DataSource = MyData.Tables("aluguer") 
        ' E agora, visto que não estou a usar uma restrição (WHERE)
        ' Se tiveres vários registos na base de dados, podes ir alternando o número da linha
        TextBox1IDAluguer.Text = MyData.Tables("aluguer").Rows(1).Item("IDAluguer") 

    End Sub

Share this post


Link to post
Share on other sites
aesp

Ele já está a devolver o ID para a primeira textbox, agora falta-me o resto, tentei usar:

oqkvhk.png

TextBox2IDCliente.Text = MyData.Tables("aluguer").Rows(1).Item("IDCliente")

Mas este já não retornou nada para a textbox.

Desculpa lá estar a chatiar, mas como sou verde no VB  :confused:

Obrigado.

Share this post


Link to post
Share on other sites
bioshock

Se continuas com a condição WHERE, deves utilizar:

TextBox2IDCliente.Text = MyData.Tables("aluguer").Rows(0).Item("IDCliente")

ou seja, rows(0) e alteras apenas o Item, que é o nome do campo.

Share this post


Link to post
Share on other sites
aesp

Até merecias um beijinho na testa  :D

Obrigado pela ajuda, bioshock era mesmo isto :confused:

Abraço.

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

×
×
  • 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.