C # में बिगिन्ट के बराबर क्या है?


209

C # में मान को संभालने के लिए मुझे क्या उपयोग करना चाहिए, जो SQL सर्वर डेटाबेस के लिए बड़ा है?

जवाबों:


354

यह लंबे (या Int64 ) से मेल खाती है , 64-बिट पूर्णांक।

यद्यपि यदि डेटाबेस से संख्या पर्याप्त रूप से छोटी होती है, और आप गलती से एक इंट 32 का उपयोग करते हैं, आदि, तो आप ठीक हो जाएंगे। लेकिन Int64 इसे जरूर आयोजित करेगा।

और अगर आपको कुछ छोटा और पूर्ण आकार की आवश्यकता होती है, तो आपको जो त्रुटि मिलती है, वह क्या है? एक ढेर अतिप्रवाह! वाह!


100
यकीन है कि यह पूर्णांक अतिप्रवाह नहीं है?
लुक्विए

6
अधिक डेटा प्रकारों के लिए अच्छा संदर्भ: msdn.microsoft.com/en-us/library/system.data.sqldbtype.aspx
MacGyver

3
C # में, longपूंजीकृत नहीं है।
शॉन कोवाक

डेटाइम को लंबे समय में बदलें?
किकेनेट


12

मेरे पास बस एक स्क्रिप्ट थी जो एक इंसर्ट की प्राथमिक कुंजी लौटाती थी और एक का उपयोग करती थी

SELECT @@identity

मेरी Bigint प्राथमिक कुंजी पर, और मुझे लंबे समय का उपयोग करके एक कास्ट त्रुटि मिलती है - यही कारण है कि मैंने यह खोज शुरू की है। कम से कम मेरे मामले में सही उत्तर यह है कि उस चयन द्वारा लौटाया गया प्रकार NUMERIC है जो दशमलव प्रकार के बराबर है। लंबे समय तक उपयोग करने से एक कास्ट अपवाद होगा।

यह एक से अधिक Google खोज (या स्टैक ओवरफ़्लो पर!) में आपके उत्तरों की जांच करने का एक कारण है।

डेटाबेस व्यवस्थापक को उद्धृत करने के लिए जिसने मेरी मदद की:

... BigInt INT64 के समान नहीं है, चाहे वे एक जैसे दिखते हों। इसका कारण यह है कि एसक्यूएल सामान्य प्रसंस्करण के भाग के रूप में अक्सर Int / BigInt को न्यूमेरिक में बदल देगा। इसलिए जब यह OLE या .NET में जाता है तो आवश्यक रूपांतरण NUMERIC to INT है।

हम अक्सर नोटिस नहीं करते हैं क्योंकि मुद्रित मूल्य समान दिखता है। "


संख्यात्मक टिप के लिए धन्यवाद .. बस मुझे बड़ा समय निकालने में मदद की!
jpshook

8
आपको एक कास्ट त्रुटि हुई क्योंकि SCOPE_IDENTITY और @@ IDENTITY रिटर्न NUMERIC (38, 0), इसलिए नहीं कि आपका BigInt PK C # Int64 में फिट नहीं है। दूसरे शब्दों में, BigInt है Int64 के रूप में ही है, लेकिन BigInt SCOPE_IDENTITY के माध्यम से लौटे मान या @@ पहचान हो सकती है NUMERIC (38, 0) के लिए ऊपर-परिवर्तित।
दान हरमन

धन्यवाद डैन। FYI करें, अभी भी SQL Azure (RTM) - 12.0.2000.8 और .NET v 4.5 के साथ हो रहा है
Gunnar


6

आप longटाइप का उपयोग कर सकते हैं याInt64



1

पूर्णांक एसक्यूएल में करने के लिए सीधे नक्शे int32 भी एक आदिम प्रकार यानी के रूप में जानते पूर्णांक में सी # , जबकि

Sql सर्वर मैप्स को सीधे int64 में bigint भी एक आदिम प्रकार के रूप में जानता है यानी C # में लंबा

एक बड़ा रूपांतरण यदि पूर्णांक से बड़े बिंदु को यहां परिभाषित किया गया है



0

यदि आप अपने डेटाबेस टेबल में बिगिन्ट का उपयोग कर रहे हैं , तो आप लॉन्ग इन सी # का उपयोग कर सकते हैं


-3

मैं DataGridView में दिखाए जाने वाले एक बड़े डेटाटाइप को संभाल रहा था और इसे इस तरह बनाया

something = (int)(Int64)data_reader[0];
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.