डीबी के माध्यम से अक्षम इनपुट फ़ील्ड भरने का सबसे साफ तरीका

मैंने एक फॉर्म बनाया है जो उपयोगकर्ता को डेटाबेस में संग्रहीत वस्तुओं की एक सूची में जोड़ने की अनुमति देता है। सूची तालिका में प्रत्येक आइटम एक यूआईडी से जुड़ा हुआ है जो स्वत: वृद्धिशील, गैर-संपादन योग्य और प्रभावी ढंग से स्वतः उत्पन्न होता है।

फॉर्म में शीर्ष फ़ील्ड ItemID है, जिसमें इनपुट अक्षम है और केवल उस नए आइटम की आईडी के उपयोगकर्ता को सूचित करने के लिए है जो वे जोड़ रहे हैं।

आदर्श रूप में, यहां छद्म कोड है:

<input type="text" name="email" value="<% (SELECT Max(ItemID) FROM dbo.Inventory).ToInt32 + 1 %>" disabled="disabled"/>

मेरे पास पहले से ही एसक्यूएल ओआरएम सेट करने के लिए एक लिंक है। यह सब एमवीसी में किया जा रहा है, इसलिए फॉर्म के नियंत्रक के अंदर सही मूल्य को समझने के लिए यह विचार हुआ और फिर इसे सीधे दृश्य में पास कर दिया गया।

इसे प्राप्त करने का सबसे आसान, सरल तरीका क्या होगा? मुझे आदर्श लगता है, "मूल्य" फ़ील्ड 1 लाइन से अधिक नहीं होनी चाहिए।

1

1 उत्तर

यह दृष्टिकोण काम नहीं करेगा।

यदि itemID ऑटो-वृद्धिशील फ़ील्ड है जो घटक इसके मूल्य को बढ़ाते हैं? कहीं भी, लेकिन डेटाबेस आप परेशानी में भाग लेंगे। मान लें कि आप डेटाबेस असाइन किए गए फ़ील्ड का उपयोग करते हैं, जब आप अपने इनपुट फ़ील्ड को उस मान के साथ पॉप्युलेट करते हैं जिसे आप अगले समय उपलब्ध उस समय लेते हैं। क्या होता है हालांकि दो रूपों को पढ़ा और आदेश से बाहर जमा किया जाता है? आपके मूल्य फ़ील्ड में आपके द्वारा पॉप्युलेट किया गया आईडी आईडी के साथ मेल नहीं खाएगा डेटाबेस डेटाबेस असाइन करेगा। तो यह एक समय में एक ही उपयोगकर्ता के लिए संभावित रूप से काम करेगा।

सबसे अच्छा यह है कि जब आप पहचान कॉलम का उपयोग करके वास्तविक डीबी सम्मिलन करते हैं तो डीबी को मान असाइन करना है और इसे मैन्युअल रूप से करने या आईडी की भविष्यवाणी करने की कोशिश करने की चिंता न करें - इस तरह मान फ़ील्ड को पॉप्युलेट न करें।

0
जोड़ा