ये सवाल हम यहां रोज देखते हैं। वे इसी समस्या से उपजे हैं।
SQL क्वेरी बनाने के लिए कभी भी STRING CONCATENATION का उपयोग न करें।
बड़ी समस्या है। बेशक आप पहले प्रभाव से पहले ही मिल चुके हैं। स्ट्रिंग्स को स्वीकार्य तरीके से प्रभावी डेटा प्रकार में कैसे बदलें? आपको अंतर्निहित डेटाबेस सिस्टम के लिए एम्बेडेड कोट्स, तिथियों का सही प्रतिनिधित्व और दशमलव संख्याओं के साथ पार्सिंग समस्याओं को हल करने की आवश्यकता है। लेकिन स्ट्रिंग संयोजन का दूसरा और अधिक सूक्ष्म दुष्प्रभाव SQL Injection है। (यह सिर्फ एक शिक्षाप्रद लिंक है क्योंकि SQL इंजेक्शन एक बहुत बड़ा विषय है)
इस तरह की समस्याओं को हल करने के लिए पैरामीटर्स का उपयोग करना ही एकमात्र स्वीकृत तरीका है।
इसका मतलब है कि यह डेटाबेस इंजन है जो एक कुशल तरीके से प्रश्न को हल करता है, आपको पैरामीटर प्लेसहोल्डर (@something) के साथ एक स्ट्रिंग की आवश्यकता होती है और ए पैरामीटर के मान के लिए सटीक डेटा प्रकार के साथ पैरामीटर्स का संग्रह।
तो आपका कोड इस तरह से बदलना चाहिए
Dim strSQL As String = "SELECT EMP_ID,EMP_NAME,AT_STATUS,AT_REMARK " +
"FROM ATTENDANCE WHERE AT_DATE = @editdate " +
"ORDER BY EMP_NAME ASC"
Using con = new SqlConnection("constring_here")
con.Open()
Using cmd = new SqlCommand(strSQL, con)
cmd.Parameters.AddWithValue("@editdate", DTPEDITAT.Value)
' do whatever you want with the command '
' like ExecuteReader or use a DataAdapter to fill datasets'
End Using
End Using