Şimdi Ara

vb database update problemi

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
432
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 



    Dim baglanti As New OleDbConnection("Provider=Microsoft.Ace.Oledb.12.0;Data source=Puan Kayıtları1.accdb")
    baglanti.Open()
    Dim guncelle As New OleDbCommand()
    Try

    guncelle = baglanti.CreateCommand()
    guncelle.CommandText = "update Puanlar set Isim=@Isim,Esini_Bul=@Esini_Bul,Sudoku=@Sudoku,Saatler=@Saatler,Evi_topla=@Evi_topla,Sayilar=@Sayilar,Yapboz=@Yapboz,Ifadelerim_yuzler=@Ifadelerim_yuzler,Ifadelerim_meslekler=@Ifadelerim_meslekler,Ifadelerim_spor=@Ifadelerim_spor where Isim= ’" + Label3.Text + "‘"
    guncelle.Parameters.Add("@Isim", Label3.Text)
    guncelle.Parameters.Add("@Esini_Bul", Label5.Text)
    guncelle.Parameters.Add("@Sudoku", Label7.Text)
    guncelle.Parameters.Add("@Saatler", Label8.Text)
    guncelle.Parameters.Add("@Evi_topla", Label4.Text)
    guncelle.Parameters.Add("@Sayilar", Label9.Text)
    guncelle.Parameters.Add("@Yapboz", Label10.Text)
    guncelle.Parameters.Add("@Ifadelerim_yuzler", Label11.Text)
    guncelle.Parameters.Add("@Ifadelerim_meslekler", Label12.Text)
    guncelle.Parameters.Add("@Ifadelerim_spor", Label13.Text)



    If (guncelle.ExecuteNonQuery() = 1) Then
    MessageBox.Show("Kayıt güncelendi")
    End If
    Catch ex As Exception

    MessageBox.Show("Hata" & ex.ToString())
    End Try
    baglanti.Close()






    End Sub


    aldığım hata gerekli parametreler boş hatası. yalnız şöyle bir olay var where kısmını sildiğimde program calısıyor fakat o zaman da işime yaramıyor bütün hücreleri değiştiriyor çünkü. yardımcı olursanız sevinirim.



    < Bu mesaj bu kişi tarafından değiştirildi ::ConsTanTine:: -- 23 Mayıs 2010; 20:23:01 >







  • quote:

    Orijinalden alıntı: ::ConsTanTine::

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 



    Dim baglanti As New OleDbConnection("Provider=Microsoft.Ace.Oledb.12.0;Data source=Puan Kayıtları1.accdb")
    baglanti.Open()
    Dim guncelle As New OleDbCommand()
    Try

    guncelle = baglanti.CreateCommand()
    guncelle.CommandText = "update Puanlar set Isim=@Isim,Esini_Bul=@Esini_Bul,Sudoku=@Sudoku,Saatler=@Saatler,Evi_topla=@Evi_topla,Sayilar=@Sayilar,Yapboz=@Yapboz,Ifadelerim_yuzler=@Ifadelerim_yuzler,Ifadelerim_meslekler=@Ifadelerim_meslekler,Ifadelerim_spor=@Ifadelerim_spor where Isim= ’" + Label3.Text + "‘"
    guncelle.Parameters.Add("@Isim", Label3.Text)
    guncelle.Parameters.Add("@Esini_Bul", Label5.Text)
    guncelle.Parameters.Add("@Sudoku", Label7.Text)
    guncelle.Parameters.Add("@Saatler", Label8.Text)
    guncelle.Parameters.Add("@Evi_topla", Label4.Text)
    guncelle.Parameters.Add("@Sayilar", Label9.Text)
    guncelle.Parameters.Add("@Yapboz", Label10.Text)
    guncelle.Parameters.Add("@Ifadelerim_yuzler", Label11.Text)
    guncelle.Parameters.Add("@Ifadelerim_meslekler", Label12.Text)
    guncelle.Parameters.Add("@Ifadelerim_spor", Label13.Text)



    If (guncelle.ExecuteNonQuery() = 1) Then
    MessageBox.Show("Kayıt güncelendi")
    End If
    Catch ex As Exception

    MessageBox.Show("Hata" & ex.ToString())
    End Try
    baglanti.Close()






    End Sub


    aldığım hata gerekli parametreler boş hatası. yalnız şöyle bir olay var where kısmını sildiğimde program calısıyor fakat o zaman da işime yaramıyor bütün hücreleri değiştiriyor çünkü. yardımcı olursanız sevinirim.



    Hocam parameter tanımlamasını ben kendim genelde stored procedure kullandığım zamanlarda yaptım, bu tarz direkt komut üzerinden gönderimlerde parametre tanımlamak yerine label lardaki değerleri direkt komuta string olarak eklemek daha sağlıklı sonuç verir sanırım:

    string commandtext = "update Puanlar set isim = '"+Label3.Text+"' , esini_bul = '"+label5.text+"' .... gibi. böylece parametrenin boş olması gibi bir ihtimali kesin olarak ortadan kaldırmış olursun.. belki kod açısından hoş gözükmüyor ama daha garantili sanırım..


    Edit: kafama taklıan bir konu oldu . update komutunda isim parametresini set liyorsun fakat aynı zamanda where de aynı değeri arattırıyorsun. update te set kısmından isim atamasını çıkar istersen, zaten bulduğu satırlar label3 teki değere eşit olan satırlar olacağından aynı değeri tekrar ataması sorun yapıyor olabilir.



    < Bu mesaj bu kişi tarafından değiştirildi dreampowder -- 25 Mayıs 2010; 17:34:53 >




  • teşekkürler dostum. hatayı çözmüştüm bir de senin dediğin şekilde deneyeceğim.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.