none
access veri tabanından veri silme yardımı lütfen RRS feed

  • Soru

  • iyi akşamlar access veri tabanımızdaki No isimli sutun  otomatik sayı  ve bunu silemiyoruz ve düzenleme yapamıyoruz yardımcı olursanız seviniirm saygılarımla,

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            Dim sql As New String("DELETE FROM veriler WHERE No='{0}'")
            sql = String.Format(sql, DataGridView1.CurrentRow.Cells(0).Value)
            Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='Go_Data.mdb'")
            Dim komutnesnesi As New OleDb.OleDbCommand(sql, baglanti)
            Dim sonuc As Integer
            baglanti.Open()
            sonuc = komutnesnesi.ExecuteNonQuery()
            Listele("SELECT * FROM veriler'")
            baglanti.Close()
        End Sub

    14 Ocak 2013 Pazartesi 18:55

Yanıtlar

  • Üstte bahsettiğiniz sorun, kaydın silinmesiyle ilgiliydi, kaydetme değil. Onu çözdünüz galiba. Şimdi verdiğiniz kodlara gelince, neden işin kolayı varken zoru tercih ettiğini anlamak mümkün değil. O kadar çok tek tırnak ve çift tırnakla uğraşmak kolay mı oluyor anlamıyorum.

    Private Sub Duzelt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click conn.Open() Dim guncel As OleDb.OleDbCommand = New OleDb.OleDbCommand("UPDATE veriler SET Ad =?, Sd=?, Un=?, Gr=?, T1=?, T2=?, T3=?, Fks=?, Ads1=?, Ct1=?, G1=? ........... WHERE No=?", conn) With guncel.Parameters .AddWithValue("p1", textbox1.text) .AddWithValue("p2", TextBox2.Text) .AddWithValue("p3", TextBox3.Text) .AddWithValue("p4", TextBox4.Text) .AddWithValue("p5", TextBox5.Text) .AddWithValue("p6", TextBox6.Text) .AddWithValue("p7", TextBox7.Text) .AddWithValue("p8", TextBox8.Text)

    .....

    End With guncel.ExecuteNonQuery() conn.Close() End Sub

    Soru işaretleri alanların boyunca devam edecek. Ve o soru işaretlerine göre sırayla aşağıdaki gibi devam edeceksin. Hepsinin sırası düzgün olacak sadece. 15 tane soru işareti varsa, 15 tane de .addwithvalue satırın olacak.  Hepsi bu.

    • Yanıt Olarak İşaretleyen Berkay42 16 Ocak 2013 Çarşamba 21:37
    15 Ocak 2013 Salı 20:04
  • Herhangi bir hata döndürüyor mu? Try catch ile deneyin. Ama buradan baktığımızda, string.format kullanımının gerekli olmadığını söyleyebiliriz. Ve şu şekilde deneyin:

        Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='Go_Data.mdb'")
            Dim komutnesnesi As New OleDb.OleDbCommand("DELETE FROM veriler WHERE No=?", baglanti)
            komutnesnesi.Parameters.AddWithValue("p", DataGridView1.CurrentRow.Cells(0).Value)
            Dim sonuc As Integer
            baglanti.Open()
            sonuc = komutnesnesi.ExecuteNonQuery()
            Listele("SELECT * FROM veriler'")
            baglanti.Close()
        End Sub

    Ek Not: Integer değer acces sorgularında '  ' işaretlerinin içine alınmaz. Alındadığın ölçüt uyuşmazlığı hatası dönebilir. no=5 ve no='5' aynı şey değildir. Sayı alanından silme için no=5 olmalı. String.format yaptığınız yerde sonuç '' içinde dönüyor ve muhtemelen dönen ama size görünmeyen hata budur. Try Catch kullanın.

    • Yanıt Olarak İşaretleyen Berkay42 16 Ocak 2013 Çarşamba 21:36
    14 Ocak 2013 Pazartesi 19:08
  • Eğer bu kod, formunda da bana verdiğin şekilde ise, çalışmaması normal...

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='Go_Data.mdb'") Dim komutnesnesi As New OleDb.OleDbCommand("DELETE FROM veriler WHERE No=?", baglanti) komutnesnesi.Parameters.AddWithValue("p", DataGridView1.CurrentRow.Cells(0).Value) Dim sonuc As Integer baglanti.Open() sonuc = komutnesnesi.ExecuteNonQuery() 'Listele("SELECT * FROM veriler'") bunu buradan sil, içinde tek tırnak ne işe yarar bilmem. baglanti.Close()

    Listele("Select * From veriler") 'burada kullan.

    End Sub

    İlk satırı şöyle değiştir.

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) handles button5.click 'hangi butonsa işte...


    • Düzenleyen Aslan E 14 Ocak 2013 Pazartesi 19:42
    • Yanıt Olarak İşaretleyen Berkay42 16 Ocak 2013 Çarşamba 21:37
    14 Ocak 2013 Pazartesi 19:41
  • Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) handles button5.click 

    Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='Go_Data.mdb'") Dim komutnesnesi As New OleDb.OleDbCommand("DELETE FROM veriler WHERE No= bu raya ne glecek ?", baglanti) komutnesnesi.Parameters.AddWithValue("Textbox21.text", DataGridView1.CurrentRow.Cells(0).Value) Dim sonuc As Integer baglanti.Open() sonuc = komutnesnesi.ExecuteNonQuery() baglanti.Close()

    Listele("Select * From veriler")

    End Sub


    Olarak düzelteceksin.... Private Sub diye başlayan satırın sonuna dikkat et.
    • Yanıt Olarak İşaretleyen Berkay42 16 Ocak 2013 Çarşamba 21:37
    14 Ocak 2013 Pazartesi 20:33
  • Bir diğer seçenek de, komutu eklemek istediğiniz buton'a çift tıklayın ve açılan kod bloğuna bu kodu ekleyin.

    Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='Go_Data.mdb'")

    Dim komutnesnesi As New OleDb.OleDbCommand("DELETE FROM veriler WHERE No= bu raya ne glecek ?", baglanti)

    komutnesnesi.Parameters.AddWithValue("Textbox21.text", DataGridView1.CurrentRow.Cells(0).Value)

    Dim sonuc As Integer baglanti.Open()

    sonuc = komutnesnesi.ExecuteNonQuery()

    baglanti.Close() Listele("Select * From veriler")




    • Yanıt Olarak İşaretleyen Berkay42 16 Ocak 2013 Çarşamba 21:37
    15 Ocak 2013 Salı 08:52

Tüm Yanıtlar

  • Herhangi bir hata döndürüyor mu? Try catch ile deneyin. Ama buradan baktığımızda, string.format kullanımının gerekli olmadığını söyleyebiliriz. Ve şu şekilde deneyin:

        Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='Go_Data.mdb'")
            Dim komutnesnesi As New OleDb.OleDbCommand("DELETE FROM veriler WHERE No=?", baglanti)
            komutnesnesi.Parameters.AddWithValue("p", DataGridView1.CurrentRow.Cells(0).Value)
            Dim sonuc As Integer
            baglanti.Open()
            sonuc = komutnesnesi.ExecuteNonQuery()
            Listele("SELECT * FROM veriler'")
            baglanti.Close()
        End Sub

    Ek Not: Integer değer acces sorgularında '  ' işaretlerinin içine alınmaz. Alındadığın ölçüt uyuşmazlığı hatası dönebilir. no=5 ve no='5' aynı şey değildir. Sayı alanından silme için no=5 olmalı. String.format yaptığınız yerde sonuç '' içinde dönüyor ve muhtemelen dönen ama size görünmeyen hata budur. Try Catch kullanın.

    • Yanıt Olarak İşaretleyen Berkay42 16 Ocak 2013 Çarşamba 21:36
    14 Ocak 2013 Pazartesi 19:08
  • Eğer bu kod, formunda da bana verdiğin şekilde ise, çalışmaması normal...

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='Go_Data.mdb'") Dim komutnesnesi As New OleDb.OleDbCommand("DELETE FROM veriler WHERE No=?", baglanti) komutnesnesi.Parameters.AddWithValue("p", DataGridView1.CurrentRow.Cells(0).Value) Dim sonuc As Integer baglanti.Open() sonuc = komutnesnesi.ExecuteNonQuery() 'Listele("SELECT * FROM veriler'") bunu buradan sil, içinde tek tırnak ne işe yarar bilmem. baglanti.Close()

    Listele("Select * From veriler") 'burada kullan.

    End Sub

    İlk satırı şöyle değiştir.

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) handles button5.click 'hangi butonsa işte...


    • Düzenleyen Aslan E 14 Ocak 2013 Pazartesi 19:42
    • Yanıt Olarak İşaretleyen Berkay42 16 Ocak 2013 Çarşamba 21:37
    14 Ocak 2013 Pazartesi 19:41
  • Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) handles button5.click 

    Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='Go_Data.mdb'") Dim komutnesnesi As New OleDb.OleDbCommand("DELETE FROM veriler WHERE No= bu raya ne glecek ?", baglanti) komutnesnesi.Parameters.AddWithValue("Textbox21.text", DataGridView1.CurrentRow.Cells(0).Value) Dim sonuc As Integer baglanti.Open() sonuc = komutnesnesi.ExecuteNonQuery() baglanti.Close()

    Listele("Select * From veriler")

    End Sub


    Olarak düzelteceksin.... Private Sub diye başlayan satırın sonuna dikkat et.
    • Yanıt Olarak İşaretleyen Berkay42 16 Ocak 2013 Çarşamba 21:37
    14 Ocak 2013 Pazartesi 20:33
  • Bir diğer seçenek de, komutu eklemek istediğiniz buton'a çift tıklayın ve açılan kod bloğuna bu kodu ekleyin.

    Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='Go_Data.mdb'")

    Dim komutnesnesi As New OleDb.OleDbCommand("DELETE FROM veriler WHERE No= bu raya ne glecek ?", baglanti)

    komutnesnesi.Parameters.AddWithValue("Textbox21.text", DataGridView1.CurrentRow.Cells(0).Value)

    Dim sonuc As Integer baglanti.Open()

    sonuc = komutnesnesi.ExecuteNonQuery()

    baglanti.Close() Listele("Select * From veriler")




    • Yanıt Olarak İşaretleyen Berkay42 16 Ocak 2013 Çarşamba 21:37
    15 Ocak 2013 Salı 08:52
  • Üstte bahsettiğiniz sorun, kaydın silinmesiyle ilgiliydi, kaydetme değil. Onu çözdünüz galiba. Şimdi verdiğiniz kodlara gelince, neden işin kolayı varken zoru tercih ettiğini anlamak mümkün değil. O kadar çok tek tırnak ve çift tırnakla uğraşmak kolay mı oluyor anlamıyorum.

    Private Sub Duzelt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click conn.Open() Dim guncel As OleDb.OleDbCommand = New OleDb.OleDbCommand("UPDATE veriler SET Ad =?, Sd=?, Un=?, Gr=?, T1=?, T2=?, T3=?, Fks=?, Ads1=?, Ct1=?, G1=? ........... WHERE No=?", conn) With guncel.Parameters .AddWithValue("p1", textbox1.text) .AddWithValue("p2", TextBox2.Text) .AddWithValue("p3", TextBox3.Text) .AddWithValue("p4", TextBox4.Text) .AddWithValue("p5", TextBox5.Text) .AddWithValue("p6", TextBox6.Text) .AddWithValue("p7", TextBox7.Text) .AddWithValue("p8", TextBox8.Text)

    .....

    End With guncel.ExecuteNonQuery() conn.Close() End Sub

    Soru işaretleri alanların boyunca devam edecek. Ve o soru işaretlerine göre sırayla aşağıdaki gibi devam edeceksin. Hepsinin sırası düzgün olacak sadece. 15 tane soru işareti varsa, 15 tane de .addwithvalue satırın olacak.  Hepsi bu.

    • Yanıt Olarak İşaretleyen Berkay42 16 Ocak 2013 Çarşamba 21:37
    15 Ocak 2013 Salı 20:04