इसी तरह के प्रश्न हैं लेकिन उत्तर वे नहीं थे जिन्हें मैं ढूंढ रहा था। यदि संदर्भ शून्य है या कोई मान अभी तक असाइन नहीं किया गया है, तो मैं SQL सर्वर डेटाबेस में NULL का मान डालना चाहता हूं। फिलहाल मैं अशक्त के लिए परीक्षण कर रहा हूँ औरपरिवर्तनीय मानों से SQL सर्वर डेटाबेस में NULL मानों को सम्मिलित करना
तरहString testString = null;
if (testString == null)
{
command.Parameters.AddParameter(new SqlParameter("@column", DBNull.Value);
}
else
{
command.Parameters.AddParameter(new SqlParameter("@column", testString);
}
यह लग रहा है और मेरे लिए अविश्वसनीय रूप से अनाड़ी लगता है यह लग रहा है। मेरे पास कुछ मूल्य हैं जो मैं डेटाबेस में डाल रहा हूं और उपरोक्त की तरह सभी का परीक्षण करने के लिए बहुत verbose है। क्या यह किसी भी तरह से इसे संभाल नहीं करता है। मैंने सोचा कि शायद मैं स्ट्रिंग का विरोध करने के रूप में स्ट्रिंग का उपयोग करता हूं लेकिन यह भी काम नहीं करता है। चारों ओर देखकर मुझे ऐसे लेख मिले जो नलबल प्रकारों का उपयोग करने के बारे में बात करते हैं।
System.Nullable<T> variable
यह प्राइमेटिव्स, int ?, char के लिए काम करता प्रतीत होता है? दोगुना? और बूल? तो यह उन लोगों के लिए काम कर सकता है लेकिन तारों के बारे में क्या? क्या मुझसे कोई चूक हो रही है। आदिम मूल्यों और स्ट्रिंग मानों के लिए मुझे किस प्रकार का उपयोग करना चाहिए ताकि मुझे उन्हें डालने से पहले बार-बार मूल्यों का परीक्षण न करना पड़े।
संपादित करें: इससे पहले कि मुझे टर्नरी ऑपरेटरों के बारे में बहुत अधिक जवाब मिलें। मैं उन्हें पसंद करता हूं लेकिन इस संदर्भ में नहीं। मुझे उस मूल्य का परीक्षण करने की आवश्यकता नहीं है और उस अतिरिक्त तर्क के साथ, जब उस तरह की चीज को नेट फ्रेमवर्क में कम किया जा सकता था और यदि मुझे पता था कि किस प्रकार के देना है तो यह इसे प्राप्त करेगा मुक्त करने के लिए।
संपादित करें: ठीक है, तो लोग मुझे हमले की योजना बनाने में मदद करते हैं। मैं अपने प्राइमेटिव्स (int ?, double? आदि) के लिए Nullable का उपयोग करूंगा और मेरे स्ट्रिंग्स के लिए मैं स्ट्रिंग का उपयोग करूंगा लेकिन ?? परीक्षा। यह चीजों को कम verbose रखता है। क्या यहां कुछ भी है जो मैं यहां लापता हूं, जैसे कुछ अर्थशास्त्र खोना?
कंपाइलर इस पर चकित करेगा क्योंकि यह स्ट्रिंग से डीबीएनयूएल में पूरी तरह से परिवर्तित नहीं हो सकता है। – LukeH
आप सही हैं। आपको किसी ऑब्जेक्ट में स्ट्रिंग (x) को कम करने की आवश्यकता है। संपादित उदाहरण। –
इसका कोई प्रशंसक नहीं है, क्योंकि यह पैरामीटर के लिए गलत प्रकार का अनुमान लगाने के लिए आसान बनाता है। एक अधिभार के माध्यम से पैरामीटर प्रकार निर्दिष्ट करना बेहतर होगा जो 'SqlDbType' enum के लिए पूछता है। –