Forum
Merhaba,
vb.net üzerinden sql tabloya veri yazdırıyorum. Sorunsuz yazıyor. bir alana 2 defa yazım olmaması için sql server üzerindeki tabloda belirlenen alanı unique olarak işaretledim.
aynı veriden 2 defa girince textbox ile uyarı versin istiyorum. fakat şu anda o hatayı verdiremiyorum. farklı veri girersem sorun yok ama aynı veriyi girersem
"System.Data.SqlClient.SqlException: 'Cannot insert duplicate key row in object...." hatası veriyor.
hata verdiği kod satırı şu şekilde;
sqlbaglanti.Open()
If komut.ExecuteNonQuery() = 0 Then
MsgBox("Kayıt Başarılı. " )
Else
MessageBox.Show("Hata")
End If
sqlbaglanti.Close()
executnonquery mantığını hala çözemediğim için sanırım başaramadm.
Try - Catch - Finally yapısını inceleyiniz. İyi çalışmalar.
kesinlikle index kullanmanızıda öneririm.
ExecuteNonQuery() sonucu dönen değerin 0'a eşit olması değil, 0'dan büyük olması sonucu kayıt başarılı demektir. Try Catch kullanırsanız Catch kısmında istediğiniz iletiyi ekrana yazdırabilirsiniz.
Merhaba,
Executenonquery sorgu sonucunda etkilenen satır sayısını dönecektir. 0 dönmesi hiçbir kayıt üzerinde değişiklik olmadığını bildirir. En sağlıklı çözüm insert öncesinde bir select yardımıyla unique değerlerin kontrolünü sağlamak olur. Select sorgusunun sonucuna göre ya insert akışına devam edilir, ya da texrbox a uyarı verilir.