2010-03-04 7 views
6

यहां क्या गड़बड़ है, मुझे हमेशा कुछ ग़लत त्रुटियां मिलती हैं, भले ही मैंने पहले से ही उपयोग किया था। लेकिन जब मैं इसे अन्य रूप में लागू करता हूं तो यह मुझे उपरोक्त त्रुटि देता है। यहाँ मेरी कोड है:एक या अधिक आवश्यक पैरामीटर के लिए कोई मान नहीं दिया गया

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 

यहाँ क्या गलत हो सकता है?

+1

मुझे एसक्यूएल इंजेक्शन के लिए कोड पके जैसा लगता है (हालांकि जेट/एसीई से कई डीएमएल निष्पादित नहीं कर सकते हैं)। आपको वास्तव में पैरामीटर का उपयोग करना चाहिए। –

+0

मैंने कभी नहीं सोचा था कि vb.net के माध्यम से किए गए क्लाइंट अनुप्रयोगों में एसक्यूएल इंजेक्शन मौजूद हो सकता है। धन्यवाद – user225269

+0

जेट बैक एंड के साथ, जोखिम कम है, क्योंकि एकमात्र जोखिम बहुत अधिक डेटा प्रकट कर रहा है (उपयोगकर्ता द्वारा आपके कोड का एक अभिव्यक्ति डालने का प्रयास करने का प्रयास किया जा रहा है जो सभी पंक्तियों के लिए सत्य का मूल्यांकन करेगा), लेकिन यह एक हो सकता है विशेष रूप से एक अद्यतन के साथ, और स्वयं की समस्या, जो वांछित सबसेट में बस बजाय सभी पंक्तियों में डेटा बदलना समाप्त कर सकता है। –

उत्तर

11

इस त्रुटि का सामान्य कारण एक अनुपलब्ध या गलत वर्तनी मान है। ऐसा लगता है कि adminName शून्य या शून्य-लंबाई वाली स्ट्रिंग है।

+0

मुझे परेशानी के लिए खेद है कि यह सिर्फ एक साधारण टाइपो त्रुटि थी: AdminPassS = '' और adminPass AdminPass होना चाहिए..लेकिन किसी भी तरह से – user225269

22

एक no value given for one or more required parameters त्रुटि जब कोई पहुँच वापस अंत के लिए विकसित करने के साथ काम के लिए एक अच्छी चाल CommandText की सामग्री पकड़ें और उसे एक्सेस अपने आप में एक डमी क्वेरी में चिपकाने के लिए है। फिर एक्सेस आपको एक पॉपअप की पेशकश करेगा जो पहचान कर रहा है कि कौन सा क्षेत्र समस्या पैदा कर रहा है (आमतौर पर एक टाइपो, जैसा कि आपके मामले में है)।

+0

का उत्तर देने के लिए धन्यवाद, यह वास्तव में अच्छा है, बहुत सारी अच्छी चाल है I आप जैसे राक्षसों से प्राप्त कर सकते हैं, धन्यवाद :) – user225269

+0

धन्यवाद - विरासत डेटाबेस से निपटने के लिए, मैं अपनी सभी एक्सेस चाल भूल गया हूँ! – Meg

1

कमांड टेक्स्ट को स्वयं पहुंचने में चिपकाते समय और एक्सेस आपको बताता है कि कौन सा क्षेत्र समस्या है, यदि कोई प्रकार नहीं दिखता है, तो फ़ील्ड नाम को स्क्वायर ब्रैकेट में संलग्न करने का प्रयास करें। [] यह संभव है कि आपके कॉलम में से कोई एक कीवर्ड हो। यह मेरे साथ हुआ, जो कॉलम LL_ID - मुझे इसे [एलएल_आईडी] में बदलना पड़ा।

संबंधित मुद्दे

 संबंधित मुद्दे