Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
581
Tıklama
0
Öne Çıkarma
vb database update problemi
:
16 yıl (220 mesaj)
Teğmen
Konu Sahibi

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 >

D
16 yıl (4860 mesaj)
Yarbay

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 >
Bu mesaja 1 cevap geldi.
:
16 yıl (220 mesaj)
Teğmen
Konu Sahibi

teşekkürler dostum. hatayı çözmüştüm bir de senin dediğin şekilde deneyeceğim.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.