Form'da 2 adet datagridview var. DataGridView1'de id ad soyad diye sütunları listeledim ve herhangi bir ismi seçtiğimde datagridview2'ye o id'ye bağlı bilgileri aktarıyorum fakat bu işlem 1 kere oluyor yani başka bi id ye tıkladığımda 2. Datagrid yenilenmiyor. Bunu nasıl düzeltebilirim?
Sub listele() koopTablo.Clear() makbuzTablo.Clear() bag.Open() adtr = New OleDbDataAdapter("select plaka,adi,soyadi From koop", bag) adtr.Fill(koopTablo) DataGridView1.DataSource = koopTablo DataGridView1.Columns(0).HeaderText = "PLAKA" DataGridView1.Columns(1).HeaderText = "Adı" DataGridView1.Columns(2).HeaderText = "Soyadı" DataGridView1.Refresh() bag.Close() adtr.Dispose() End Sub Sub sec() Try If DataGridView1.CurrentRow.Cells(0).Value.ToString().Trim() <> "" Then bag.Open() kmt.Connection = bag adtr = New OleDbDataAdapter("SELECT Makbuzno,Donem,Tarih,Miktar from Makbuz WHERE PLAKA='" & DataGridView1.CurrentRow.Cells(0).Value.ToString() & "'", bag) adtr.Fill(makbuzTablo) DataGridView2.DataSource = makbuzTablo DataGridView2.Refresh() kmt.ExecuteNonQuery() listele() bag.Close() kmt.Dispose() End If Catch End Try End Sub Private Sub Form5_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load listele() sec() End Sub
Toplam 1 cevap
Sec() metodunu Form_Load olayında kullanmamalısın.
DataGrivView1 içinde herhangi bir row seçildiğinde tekrardan Sec() metodunu çağırmalısın.
Bunun için şunları yap:
Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick Sec() End Sub
Böylelikle DataGridView1 içinde bir kayıt tıklandığında Gatagridview2 içindeki veriler güncellenecektir.
Aşağıda SQL üzerinde sizin kodlarınızı biraz düzenleyerek örnek yazdım. Test ettim sorunsuz çalışıyor.
Yaklaşık 6-7 senedir hiç VB.Net kullanmadım. Uzun zaman sonra Vb.Net kullanmak ilginc oldu.
Imports System.Data.SqlClient Public Class Form1 Dim bag As New SqlConnection("server=.\SqlExpress; Integrated Security=SSPI; Database=Sample") Dim adtr As New SqlDataAdapter() Dim koopTablo As New DataSet Dim kmt As New SqlCommand() Dim makbuzTablo As New DataSet Sub Listele() adtr = New SqlDataAdapter("select plaka As PLAKA,adi as AD,soyadi as SOYAD From koop", bag) adtr.Fill(koopTablo) DataGridView1.DataSource = koopTablo.Tables(0) End Sub Sub Sec() makbuzTablo.Tables.Clear() If DataGridView1.CurrentRow.Cells(0).Value.ToString().Trim() <> "" Then adtr = New SqlDataAdapter("SELECT Makbuzno,Donem,Tarih,Miktar from Makbuz WHERE PLAKA='" & DataGridView1.CurrentRow.Cells(0).Value.ToString() & "'", bag) adtr.Fill(makbuzTablo) DataGridView2.DataSource = makbuzTablo.Tables(0) End If End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Listele() End Sub Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick Sec() End Sub End Class