erişim kayıt var kontrol etmek için gereken yardım Bir program üzerinde çalışıyorum ve bir müşteri kimliği girdiğinizde kayıt silecek bir bölüm yapıyorum. Mesele şu ki, eğer 30 no'lu numaraya girerseniz ve 30'luk bir sayı varsa, o id ile hiçbir kayıt olmasa bile hala devam edecek ve silinecektir. Kayıt olmadığını belirten bir mesaj göstermesini istiyorum, ancak aşağıdaki kod işe yaramayacak. Kafam çok karıştı!VB.net
Burada kodu buldum ve bunu tasarımıma uygulamaya çalışıyorum, ancak çalışmıyor. Gördüğünüz gibi orijinal kodumu etiketledim, ancak bu yeni kodu kullanmaya çalıştım. Yardım lütfen! çalıştırırken i almak
Benim hatadır: Kelime desteklenmez: 'sağlayıcı'
Kodu:
Private Sub Client(ByVal ans As String)
Dim con1 As SqlConnection = New SqlConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=.\Database.accdb")
If con1.State = ConnectionState.Closed Then con1.Open()
Dim theQuery As String = "SELECT * FROM tbl WHERE ID = ?"
Dim cmd1 As SqlCommand = New SqlCommand(theQuery, con1)
cmd1.Parameters.AddWithValue("?", OleDbType.VarChar).Value = ans
Using reader As SqlDataReader = cmd1.ExecuteReader()
If reader.HasRows Then
' User exists delete
Dim cmd As SqlCommand = New SqlCommand("DELETE FROM tbl where ID = ?", con1)
cmd.ExecuteNonQuery()
Else
' User does not exist throw message
MsgBox("Records dont exist", MsgBoxStyle.Information, "Add New Customer!")
End If
End Using
con1.Close()
End Sub
Ben senin düşünce takdir: o satır olmaması durumunda dont silme sorgusu yürütün. Ancak, sonuç * başka bir * sorguyu çalıştırmanızdır, bu yüzden var olmadığı zaman sorgu sayımına girer, ancak var olduğunda * 2 * işlemiş olursunuz. A) 'cmd.ExecuteNonQuery()', etkilenen satır sayısını döndüren bir işlevdir, böylece bir tane olup olmadığını bilebilirsiniz. b) Eğer bir DataTable'dan çalışıyor olsaydınız, eğer mevcutsa (ama yine de gerekmez) bundan haberdar olabilirdiniz. – Plutonix
SQL Server için oluşturulmuş sınıfları kullanarak bir MS-Access veritabanını güncelleştirmeye çalışıyorsunuz. Hayır, hiç işe yaramıyor. OleDb ad alanından sınıfları kullanın. (OleDbConnection, OleDbCommand vb ...) Elbette, @Plutonix'in dediği gibi, silmeyi planlıyorsanız kaydın var olup olmadığını kontrol etmeniz gerekmez. Sadece silmek ve sonuç geri ExecuteNonQuery – Steve
dan Tamam, tüm bunları sildim, ama ben daha önce gibi OleDb için geri tüm değiştirirseniz, ama ben bunu yapmak nasıl bu yüzden satır var olup olmadığını kontrol eder? –