यहां क्या गड़बड़ है, मुझे हमेशा कुछ ग़लत त्रुटियां मिलती हैं, भले ही मैंने पहले से ही उपयोग किया था। लेकिन जब मैं इसे अन्य रूप में लागू करता हूं तो यह मुझे उपरोक्त त्रुटि देता है। यहाँ मेरी कोड है:एक या अधिक आवश्यक पैरामीटर के लिए कोई मान नहीं दिया गया
Imports System.Data.OleDb
Public Class Updater2
Public adminID As String
Public adminName As String
Public adminPass As String
Private con As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db1.mdb;Jet OLEDB:Database Password=nrew123$%^;")
Private com As OleDb.OleDbCommand
Public Sub New()
con.Open()
com = New OleDb.OleDbCommand("Select * from admintable")
com.Connection = con
End Sub
Public Sub updates()
com.CommandText = "UPDATE admintable SET AdminName = '" & adminName & "', AdminPassS = '" & adminPass & "' WHERE ID = '" & adminID & "'"
com.ExecuteNonQuery()
End Sub
End Class
और यहाँ बटन में कोड है जो डेटा को अद्यतन करने की कोशिश करता है:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
shikai.adminID = textbox1.text
shikai.adminName = TextBox4.Text
shikai.adminPass = TextBox3.Text
shikai.updates()
MsgBox("Successfully updated!")
End Sub
यहाँ क्या गलत हो सकता है?
मुझे एसक्यूएल इंजेक्शन के लिए कोड पके जैसा लगता है (हालांकि जेट/एसीई से कई डीएमएल निष्पादित नहीं कर सकते हैं)। आपको वास्तव में पैरामीटर का उपयोग करना चाहिए। –
मैंने कभी नहीं सोचा था कि vb.net के माध्यम से किए गए क्लाइंट अनुप्रयोगों में एसक्यूएल इंजेक्शन मौजूद हो सकता है। धन्यवाद – user225269
जेट बैक एंड के साथ, जोखिम कम है, क्योंकि एकमात्र जोखिम बहुत अधिक डेटा प्रकट कर रहा है (उपयोगकर्ता द्वारा आपके कोड का एक अभिव्यक्ति डालने का प्रयास करने का प्रयास किया जा रहा है जो सभी पंक्तियों के लिए सत्य का मूल्यांकन करेगा), लेकिन यह एक हो सकता है विशेष रूप से एक अद्यतन के साथ, और स्वयं की समस्या, जो वांछित सबसेट में बस बजाय सभी पंक्तियों में डेटा बदलना समाप्त कर सकता है। –