DATAGRID P/ TEXTBOX
bom dia pessoal, meu problema é o seguinte, tenho um datagrid que exibe meus registros, quero que ao clicar no registro no datagrid os textbox sejam preenchidos, porém não estou conseguiindo, a tabela ja possui registros, aparece o seguinte erro: [Ô]Object reference not set to an instance of an object.
abaixo eu colo o código, não entendi muito bem, por gentileza, preciso de ajuda
Obrigado
o erro ocorre na seguinte linha - txtCadLogin.Text = ds.Tables([Ô]usuarios[Ô]).Rows().Item(1).ToString
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
[ô]reexibir no grid
[ô]Create connection
Dim conn As Common.DbConnection
[ô]create data adapter
Dim da As Common.DbDataAdapter
[ô]create dataset
Dim ds As DataSet = New DataSet
[ô]Set up connection string
Dim cnString As String
Dim sqlQRY As String
cnString = [Ô]datasource=192.168.25.1;username=root;password=senha;database=basededados[Ô]
sqlQRY = [Ô]Select * from usuarios[Ô]
conn = New MySqlConnection(cnString)
Try
[ô] Open connection
conn.Open()
da = New MySqlDataAdapter(sqlQRY, conn)
[ô]create command builder
Dim cb As MySqlCommandBuilder = New MySqlCommandBuilder(da)
[ô]fill dataset
da.Fill(ds, [Ô]Customers[Ô])
txtCadLogin.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(1).ToString -> tentei colocar (i) e deu erro, nao sei o que fazer
txtcadSenha.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(2).ToString
txtCadNome.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(3).ToString
cboPerm.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(4).ToString
DataGridView1.DataSource = ds
DataGridView1.DataMember = [Ô]Customers[Ô]
Catch ex As Common.DbException
MsgBox(ex.ToString)
Finally
[ô] Close connection
conn.Close()
End Try
abaixo eu colo o código, não entendi muito bem, por gentileza, preciso de ajuda
Obrigado
o erro ocorre na seguinte linha - txtCadLogin.Text = ds.Tables([Ô]usuarios[Ô]).Rows().Item(1).ToString
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
[ô]reexibir no grid
[ô]Create connection
Dim conn As Common.DbConnection
[ô]create data adapter
Dim da As Common.DbDataAdapter
[ô]create dataset
Dim ds As DataSet = New DataSet
[ô]Set up connection string
Dim cnString As String
Dim sqlQRY As String
cnString = [Ô]datasource=192.168.25.1;username=root;password=senha;database=basededados[Ô]
sqlQRY = [Ô]Select * from usuarios[Ô]
conn = New MySqlConnection(cnString)
Try
[ô] Open connection
conn.Open()
da = New MySqlDataAdapter(sqlQRY, conn)
[ô]create command builder
Dim cb As MySqlCommandBuilder = New MySqlCommandBuilder(da)
[ô]fill dataset
da.Fill(ds, [Ô]Customers[Ô])
txtCadLogin.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(1).ToString -> tentei colocar (i) e deu erro, nao sei o que fazer
txtcadSenha.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(2).ToString
txtCadNome.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(3).ToString
cboPerm.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(4).ToString
DataGridView1.DataSource = ds
DataGridView1.DataMember = [Ô]Customers[Ô]
Catch ex As Common.DbException
MsgBox(ex.ToString)
Finally
[ô] Close connection
conn.Close()
End Try
tenta fazer assim, não sei se esta certo não pq fiz de cabeça de uma olha e posta o erro que der ok
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
[ô]reexibir no grid
[ô]Create connection
Dim conn As Common.DbConnection
[ô]create data adapter
Dim da As Common.DbDataAdapter
[ô]create dataset
Dim ds As DataSet = New DataSet
[ô]Set up connection string
Dim cnString As String
Dim sqlQRY As String
cnString = [Ô]datasource=192.168.25.1;username=root;password=senha;database=basededados[Ô]
sqlQRY = [Ô]Select * from usuarios where Codigo=[Ô] & DataGridView1.Item(Coluna,Linha) [ô]Aqui vc coloca o Codigo do registro clicado
conn = New MySqlConnection(cnString)
Try
[ô] Open connection
conn.Open()
da = New MySqlDataAdapter(sqlQRY, conn)
[ô]create command builder
Dim cb As MySqlCommandBuilder = New MySqlCommandBuilder(da)
[ô]fill dataset
da.Fill(ds, [Ô]Customers[Ô])
if ds.Tables(0).Rows.count = 0 then
exit sub
end if
txtCadLogin.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(1).ToString
txtcadSenha.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(2).ToString
txtCadNome.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(3).ToString
cboPerm.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(4).ToString
[ô]Você não deve colocar essas duas linhas se não sua grid tera apenas uma linha, a que foi filtrada
[ô]DataGridView1.DataSource = ds
[ô]DataGridView1.DataMember = [Ô]Customers[Ô]
Catch ex As Common.DbException
MsgBox(ex.ToString)
Finally
[ô] Close connection
conn.Close()
End Try
end sub
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
[ô]reexibir no grid
[ô]Create connection
Dim conn As Common.DbConnection
[ô]create data adapter
Dim da As Common.DbDataAdapter
[ô]create dataset
Dim ds As DataSet = New DataSet
[ô]Set up connection string
Dim cnString As String
Dim sqlQRY As String
cnString = [Ô]datasource=192.168.25.1;username=root;password=senha;database=basededados[Ô]
sqlQRY = [Ô]Select * from usuarios where Codigo=[Ô] & DataGridView1.Item(Coluna,Linha) [ô]Aqui vc coloca o Codigo do registro clicado
conn = New MySqlConnection(cnString)
Try
[ô] Open connection
conn.Open()
da = New MySqlDataAdapter(sqlQRY, conn)
[ô]create command builder
Dim cb As MySqlCommandBuilder = New MySqlCommandBuilder(da)
[ô]fill dataset
da.Fill(ds, [Ô]Customers[Ô])
if ds.Tables(0).Rows.count = 0 then
exit sub
end if
txtCadLogin.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(1).ToString
txtcadSenha.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(2).ToString
txtCadNome.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(3).ToString
cboPerm.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(4).ToString
[ô]Você não deve colocar essas duas linhas se não sua grid tera apenas uma linha, a que foi filtrada
[ô]DataGridView1.DataSource = ds
[ô]DataGridView1.DataMember = [Ô]Customers[Ô]
Catch ex As Common.DbException
MsgBox(ex.ToString)
Finally
[ô] Close connection
conn.Close()
End Try
end sub
killer, bom dia, obrigado por me responder, porém deu um erro novamente
[txt-color=#e80000]Object reference not set to an instance of an object.[/txt-color]
justamente nessa linha:
[txt-color=#0000f0] txtCadLogin.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(1).ToString[/txt-color]
não entendi essa parte do código:
sqlQRY = [Ô]Select * from usuarios where Codigo=[Ô] & DataGridView1.Item(Coluna,Linha) [ô]Aqui vc coloca o Codigo do registro clicado
sendo que o código seria id e a linha seria a 1 correto? não sei pq, a ajuda do programa me sugere a usar a palavra new para criar uma instancia de objeto, porém eu sou novato é o meu primeiro sistema rsrs...
devo declarar a coluna e a linha? não sei como resolver esse problema
obrigado
[txt-color=#e80000]Object reference not set to an instance of an object.[/txt-color]
justamente nessa linha:
[txt-color=#0000f0] txtCadLogin.Text = ds.Tables([Ô]usuarios[Ô]).Rows(0).Item(1).ToString[/txt-color]
não entendi essa parte do código:
sqlQRY = [Ô]Select * from usuarios where Codigo=[Ô] & DataGridView1.Item(Coluna,Linha) [ô]Aqui vc coloca o Codigo do registro clicado
sendo que o código seria id e a linha seria a 1 correto? não sei pq, a ajuda do programa me sugere a usar a palavra new para criar uma instancia de objeto, porém eu sou novato é o meu primeiro sistema rsrs...
devo declarar a coluna e a linha? não sei como resolver esse problema
obrigado
essa linha
sqlQRY = [Ô]Select * from usuarios where Codigo=[Ô] & DataGridView1.Item(Coluna,Linha) [ô]Aqui vc coloca o Codigo do registro clicado
esta filtrando a tabela direto do banco de dados, significa que somente a linha que vc selecionou [Ô]Current Cell[Ô] estara no dataset, codigo seria o campo chave
deve ser id no seu. coluna seria a coluna do campo chave e linha deve ser a linha clicada.
vc deve declarar linha e coluna quando o dataset estiver vazio, mais vc esta preenchendo o seu dataset com o banco, ele não deve estar vazio entao
tenta outra coisa, use um datatable ao invés de um dataset olhe se consegue assim
vc populou a grid no show do form?
sqlQRY = [Ô]Select * from usuarios where Codigo=[Ô] & DataGridView1.Item(Coluna,Linha) [ô]Aqui vc coloca o Codigo do registro clicado
esta filtrando a tabela direto do banco de dados, significa que somente a linha que vc selecionou [Ô]Current Cell[Ô] estara no dataset, codigo seria o campo chave
deve ser id no seu. coluna seria a coluna do campo chave e linha deve ser a linha clicada.
vc deve declarar linha e coluna quando o dataset estiver vazio, mais vc esta preenchendo o seu dataset com o banco, ele não deve estar vazio entao
tenta outra coisa, use um datatable ao invés de um dataset olhe se consegue assim
vc populou a grid no show do form?
como ficaria o código por gentileza, não entendi o que eu devo fazer
obrigado
obrigado
no evento load no Form
[ô]Create connection
Dim conn As Common.DbConnection
[ô]create data adapter
Dim da As Common.DbDataAdapter
[ô]create dataset
Dim ds As DataSet = New DataSet
[ô]Set up connection string
Dim cnString As String
Dim sqlQRY As String
cnString = [Ô]datasource=192.168.25.1;username=root;password=senha;database=basededados[Ô]
sqlQRY = [Ô]Select * from usuarios[Ô]
conn = New MySqlConnection(cnString)
Try
[ô] Open connection
conn.Open()
da = New MySqlDataAdapter(sqlQRY, conn)
[ô]create command builder
Dim cb As MySqlCommandBuilder = New MySqlCommandBuilder(da)
[ô]fill dataset
da.Fill(ds, [Ô]Customers[Ô])
DataGridView1.DataSource = ds
DataGridView1.DataMember = [Ô]Customers[Ô]
Catch ex As Common.DbException
MsgBox(ex.ToString)
Finally
[ô] Close connection
conn.Close()
End Try
No evento [Ô]CellClick[Ô] atencao é [Ô]CellClick[Ô] não [Ô]CellContentClick[Ô]
Dim linha As Int16
linha = dgv.CurrentCell.RowIndex
txtCadLogin.Text = DataGridView1.Item(0, linha).Value
txtcadSenha.Text = DataGridView1.Item(1, linha).Value
txtCadNome.Text = DataGridView1.Item(2, linha).Value
cboPerm.Text = DataGridView1.Item(3, linha).Value
[ô]DataGridView1.Item(Coluna, linha).Value
olha se é isso
[ô]Create connection
Dim conn As Common.DbConnection
[ô]create data adapter
Dim da As Common.DbDataAdapter
[ô]create dataset
Dim ds As DataSet = New DataSet
[ô]Set up connection string
Dim cnString As String
Dim sqlQRY As String
cnString = [Ô]datasource=192.168.25.1;username=root;password=senha;database=basededados[Ô]
sqlQRY = [Ô]Select * from usuarios[Ô]
conn = New MySqlConnection(cnString)
Try
[ô] Open connection
conn.Open()
da = New MySqlDataAdapter(sqlQRY, conn)
[ô]create command builder
Dim cb As MySqlCommandBuilder = New MySqlCommandBuilder(da)
[ô]fill dataset
da.Fill(ds, [Ô]Customers[Ô])
DataGridView1.DataSource = ds
DataGridView1.DataMember = [Ô]Customers[Ô]
Catch ex As Common.DbException
MsgBox(ex.ToString)
Finally
[ô] Close connection
conn.Close()
End Try
No evento [Ô]CellClick[Ô] atencao é [Ô]CellClick[Ô] não [Ô]CellContentClick[Ô]
Dim linha As Int16
linha = dgv.CurrentCell.RowIndex
txtCadLogin.Text = DataGridView1.Item(0, linha).Value
txtcadSenha.Text = DataGridView1.Item(1, linha).Value
txtCadNome.Text = DataGridView1.Item(2, linha).Value
cboPerm.Text = DataGridView1.Item(3, linha).Value
[ô]DataGridView1.Item(Coluna, linha).Value
olha se é isso
Fera, se você não conseguiu ainda posso postar o código para você e lhe dar uma força.
sds
sds
[txt-size=2]Meu Caro amigo isso é mais simples do que vc imagina:[/txt-size]
1º Criee um metodo assim por exemplo
2º No Evento OnClik do DataGrid vc joga esse metodo e pronto, quando vc clicar na linha seus textbox serão prenchidos
1º Criee um metodo assim por exemplo
Sub LinhaSelecionadaDoGrid()
if dtGrid.RowsCount>0 then
txtNome.text= DtGrid.Rows(DtGrid.SelectedCells(0).RowIndex).Cells(0).Value.ToString()
txtSexo.text= DtGrid.Rows(DtGrid.SelectedCells(0).RowIndex).Cells(1).Value.ToString()
txtIdade.text= DtGrid.Rows(DtGrid.SelectedCells(0).RowIndex).Cells(2).Value.ToString()
end if
End Sub
2º No Evento OnClik do DataGrid vc joga esse metodo e pronto, quando vc clicar na linha seus textbox serão prenchidos
Deu Certo Caltabiano, muito obrigado
:)
:)
Tópico encerrado , respostas não são mais permitidas