इस कोड में कुछ समस्याएं हैं।
सबसे महत्वपूर्ण यह है कि आप कमांड का कनेक्शन संपत्ति, इसलिए कमांड के पास यह जानने का कोई तरीका नहीं है कि डेटाबेस से कैसे जुड़ना है।
मैं का उपयोग करके , और साथ ही पैरामीटरिंग आपकी क्वेरी:
अंत में, जब तक आपको आवश्यकता न हो, फ़ंक्शन के बाहर कनेक्शन और कमांड की घोषणा न करें। आपको कनेक्शन और कमांड को केवल तब तक ही रखना चाहिए जब तक आपको उनकी आवश्यकता हो।
तो आपका फ़ंक्शन इस तरह दिखेगा:
Public Function add(ByVal area As String, ByVal user As String) As Integer
Dim mydao As New Connection
Using connection As New SqlConnection(mydao.ConnectionString())
Using command As New SqlCommand()
' Set the connection
command.Connection = connection
' Not necessary, but good practice
command.CommandType = CommandType.Text
' Example query using parameters
command.CommandText = "INSERT into Area (Area, user) VALUES (@area, @user)"
' Adding the parameters to the command
command.Parameters.AddWithValue("@area", area)
command.Parameters.AddWithValue("@user", user)
connection.Open()
Return command.ExecuteNonQuery()
End Using ' Dispose Command
End Using ' Dispose (and hence Close) Connection
End Function
ध्यान दें कि वर्तमान में, आप हर समय 0 पर लौटेंगे। फ़ंक्शन से लौटाए गए मान की जांच करने के बजाय, उपरोक्त उदाहरण केवल एक अपवाद फेंक देगा। यह थोड़ा क्लीनर कोड बनाता है (क्योंकि कॉलर को यह समझना होगा कि 0 एक त्रुटि स्थिति है), और, यदि आपको अपवाद को संभालने की आवश्यकता है, तो बस इस फ़ंक्शन पर कॉल को Try-Catchकोड में लपेटें।> ब्लॉक करें