के साथ मैं कई प्रश्नों को परिवर्तित करने की प्रक्रिया में हूं जो एप्लिकेशन में हार्ड-कोड किए गए थे और फ्लाई पर पैरामीटर किए गए प्रश्नों के लिए बनाया गया था। मैं एक विशेष क्वेरी, जो एक in
खंड है में परेशानी आ रही:सी # पैरामीटरेटेड क्वेरी MySQL 'इन' क्लॉज
UPDATE TABLE_1 SET STATUS = 4 WHERE ID IN (1, 14, 145, 43);
पहले पैरामीटर आसान है, के रूप में यह सिर्फ एक सामान्य पैरामीटर है:
MySqlCommand m = new MySqlCommand("UPDATE TABLE_1 SET STATUS = ? WHERE ID IN (?);");
m.Parameters.Add(new MySqlParameter("", 2));
हालांकि, दूसरा पैरामीटर एक है उन पंक्तियों की आईडी का प्रतिनिधित्व करने वाले पूर्णांक की सूची जिन्हें अद्यतन करने की आवश्यकता है। मैं एक पैरामीटर के लिए पूर्णांक की सूची में कैसे पास करूं? वैकल्पिक रूप से, आप इस क्वेरी को सेट करने के बारे में कैसे जाएंगे ताकि आपको इसे हर बार इसे पूरी तरह से निर्माण करने की आवश्यकता न हो, और एसक्यूएल इंजेक्शन हमलों को रोक सके?
http://stackoverflow.com/questions/337704/parameterizing-a-sql-in-clause की डुप्लिकेट: इस सवाल देखें हालांकि, वास्तव में अलग होने की संभावना नहीं है) –
वहां पेश किए गए समाधान को अविश्वसनीय रूप से धीमा माना जाता था, हालांकि यह मेरे प्रश्न के दूसरे भाग का उत्तर देता है। – Elie
वहां दिए गए * बहुत सारे समाधान हैं। स्वीकृत उत्तर सबसे लोकप्रिय नहीं है। –