AccessTr.neT

Tam Versiyon: DataGridView Veri Güncelleme
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
Merhaba;

DataGridView dan veritabanına veri kaydede biliyorum. Ancak verileri güncelleme işlemi yapamıyorum. DataGird te görünen tüm verileri tekrar veritabanına yazıyor. Kullanmış olduğum kod aşağıdaki gibidir;

Try
           baglanti.Open()
           Dim sorgu As String
           For a = 0 To DataGridView1.RowCount - 1
               sorgu = ("INSERT INTO donemler(donemler) values ('" & DataGridView1.Rows(a).Cells(1).Value.ToString() & "' )")
               Dim kaydet As OleDbCommand = New OleDbCommand(sorgu, baglanti)
               kaydet.ExecuteNonQuery()
           Next
           baglanti.Close()
           DataGridView1.RowCount = Nothing
           DataGridView1.Refresh()
       Catch ex As Exception
           baglanti.Close()
       End Try

Burada sanırım veri kaydı ve veri güncelleme için farklı bir yol izlemek gerekiyor ancak bir türlü bulamadım. Örnek çalışma ektedir.
Yardımcı olanlara şimdiden teşekkür ederim.
eklemek için : INSERT......
Güncelleme için : UPDATE.....

yapmanız gerekiyor.
Mevlüt hocam;

Dediğiniz gibi yaptım ancak bir türlü olmadı. Update komutunu örnekteki koduma uyarladım. Hata vermiyor ancak bir işlemde yapmıyor. Neyden olduğunu anlayamadım.
benim kodlarım bunlar
Img-grin
Try
            Sql = "Update tbl_Cekler SET alistarihi='" & txtalistarihi.Text & "', evrturu='" & txtevrturu.Text & "', kimden='" & txtkimden.Text & "', bankaadi='" & txtbankaadi.Text & "', subeadi='" & txtsubeadi.Text & "', vadetarihi='" & txtvadetarihi.Text & "', cekno='" & txtcekno.Text & "', hesapno='" & txthesapno.Text & "', tutar='" & txttutar.Text & "', notu='" & txtnot.Text & "', kaydeden='" & txtkaydeden.Text & "', drm='" & txtdrm.Text & "'   WHERE cno =" & txtcno.Text & ""

          
            ConnDB()
            cmd = New OleDbCommand(sqL, conn)
            Dim i As Integer
            i = cmd.ExecuteNonQuery
            If i > 0 Then
                cmd.Dispose()
                conn.Close()
                 MsgBox(" Güncelleme Yapılmıştır..", MsgBoxStyle.Critical, "Güncelleme")
            Else
              
                MsgBox(" Güncelleme başarısız oldu..", MsgBoxStyle.Critical, "Güncelleme")
            End If
        Catch ex As Exception
            MsgBox(ex.Message & " Modül : frm_Cekler - Güncelletbl_Cekler ")
        Finally
            cmd.Dispose()
            conn.Close()
        End Try
Mevlüt hocam;

TextBox ile bu kodladan bende yapabiliyorum sıkıntı olmuyor.
Ancak Bu işlemi ben DataGridView da yapmak istiyorum. Veri ekleme / Güncelleme işlemini TextBox lardan değil DataGirdView üzerinden yapmak istiyorum.
TextBox ta kullandığım Update komutuda DataGridView dan yaptığımda işlemi yapmıyor.

Try
baglanti.Open()
Dim sorgu As String
For a = 0 To DataGridView1.RowCount - 1
sorgu = ("UPDATE donemler SET donemler='" & DataGridView1.Rows(a).Cells(1).Value.ToString() & "' WHERE sira='" & DataGridView1.Rows(a).Cells(0).Value.ToString() & "' )")
Dim kaydet As OleDbCommand = New OleDbCommand(sorgu, baglanti)
kaydet.ExecuteNonQuery()
Next
baglanti.Close()
Catch ex As Exception
baglanti.Close()
End Try

Kodu bu şekilde düzenlediğimde kod ile ilgili bir hata vermiyor ancak herhangi bir işlemde yapmıyor.
İnternette bir iki yazı okudum onlarda DataSet kullanmak gerektiğini yazmışlar ancak herhangi bir örnek kodlama bulamadım.
sayın ustaoglu,

bahsettiğiniz talebinize yönelik olarak;

Try
       baglanti.Open()
       Dim sorgu As String
       For a = 0 To DataGridView1.RowCount - 1
       sorgu = "UPDATE donemler SET  donemler = '" & DataGridView1.Rows(a).Cells(1).Value.ToString() & "'' where sira='" & DataGridView1.Rows(a).Cells(0).Value.ToString() & "'"
       Dim cmd As New OleDbCommand(sorgu, baglanti)
       cmd.ExecuteNonQuery()
           Next
           baglanti.Close()
             Catch ex As Exception
           baglanti.Close()
End Try


yukarıda yazılı kodları deneyiniz.

NOT
alan adlarında eğer METİN Veri Türü ise KESME İŞARETİ (')  kullanınız fakat eğer SAYI ise kullanmayınız.

bilginize...iyi çalışmalar,saygılar.
Sayfalar: 1 2