সি # তে বিগিন্টের সমতুল্য কত?


209

সি # তে কোনও মান হ্যান্ডেল করার সময় আমার কী ব্যবহার করা উচিত, যা এসকিউএল সার্ভার ডাটাবেসের জন্য বড়?

উত্তর:


354

এটি দীর্ঘ (বা ইন্টার 64) এর সাথে মিলে যায় 64), একটি 64-বিট পূর্ণসংখ্যার সাথে সম্পর্কিত।

যদিও ডাটাবেস থেকে সংখ্যাটি যথেষ্ট ছোট হয়ে যায়, এবং আপনি দুর্ঘটনাক্রমে একটি আন্ত 32 ইত্যাদি ব্যবহার করেন তবে আপনি ভাল হয়ে যাবেন। তবে ইন্ট 64 এটি অবশ্যই ধরে রাখবে।

আপনি যদি কিছু ছোট ব্যবহার করেন এবং পুরো আকারের প্রয়োজন হয় তবে আপনি যে ত্রুটিটি পেয়েছেন? একটি স্ট্যাক ওভারফ্লো! হ্যাঁ!


100
নিশ্চিত যে এটি পূর্ণসংখ্যা ওভারফ্লো নয়?
লুচি

6
আরও ডেটা ধরণের জন্য ভাল রেফারেন্স: এমএসডিএন.মাইক্রোসফটকম /en-us/library/system.data.sqldbtype.aspx
ম্যাকগাইভার

3
সি # তে, longমূলধন হয় না।
শন কোভাক

ডেটটাইমকে দীর্ঘ রূপান্তর করতে চান?
কিকিনেট


12

আমার সবেমাত্র একটি স্ক্রিপ্ট ছিল যা সন্নিবেশের প্রাথমিক কীটি ফিরিয়ে এনে একটি ব্যবহার করে

SELECT @@identity

আমার বিগিন্ট প্রাথমিক কীতে এবং আমি দীর্ঘ ব্যবহার করে একটি কাস্ট ত্রুটি পেয়েছি - সে কারণেই আমি এই অনুসন্ধানটি শুরু করেছি। কমপক্ষে আমার ক্ষেত্রে সঠিক উত্তরটি হ'ল সেই নির্বাচনের মাধ্যমে প্রত্যাবর্তিত প্রকারটি NUMERIC যা দশমিক প্রকারের সমান। দীর্ঘ ব্যবহারের ফলে castালাই ব্যতিক্রম ঘটবে।

একাধিক গুগল অনুসন্ধানে (বা এমনকি স্ট্যাক ওভারফ্লোতেও!) আপনার উত্তরগুলি পরীক্ষা করার এটি একটি কারণ।

একজন ডেটাবেস প্রশাসকের উদ্ধৃতি দিতে যিনি আমাকে সাহায্য করেছিলেন:

... বিগইন্ট INT64 এর মতো নয়, যতই তারা দেখতে একই রকম হয়। কারণটির অংশটি হ'ল এসকিউএল ঘন ঘন স্বাভাবিক প্রক্রিয়াকরণের অংশ হিসাবে ইন / বিগআইএন্টকে সংখ্যায় রূপান্তরিত করে। সুতরাং এটি যখন OLE বা .NET এ যায় তখন রূপান্তরটি NUMERIC থেকে INT হয়।

মুদ্রিত মান একই দেখায় আমরা প্রায়শই লক্ষ্য করি না। "


সংখ্যার টিপটির জন্য ধন্যবাদ .. সবেমাত্র আমাকে বড় সময় সাহায্য করেছে!
jpshook

8
আপনি একটি E_ালাই ত্রুটি পেয়েছেন কারণ SCOPE_IDENTITY এবং @@ পরিচয়টি NUMERIC (38, 0) প্রত্যাবর্তন করেছে, এটি নয় যে আপনার বিগিয়ান্ট পিকে কোনও সি # আন্ত 64 তে ফিট করে না। অন্য কথায়, BigInt হয় Int64 হিসাবে একই, কিন্তু BigInt SCOPE_IDENTITY মাধ্যমে ফিরে মান বা @@ পরিচয়কে হতে পারে NUMERIC (38, 0) এর আপ-রূপান্তরিত।
ড্যান হারম্যান

ধন্যবাদ ড্যান এফওয়াইআই, এখনও এসকিউএল অ্যাজুরে (আরটিএম) এর সাথে ঘটছে - 12.0.2000.8 এবং নেট নেট 4.5
গুনার


6

আপনি longটাইপ বা ব্যবহার করতে পারেনInt64



1

int- এ SQL এর যে সরাসরি মানচিত্র int32 একটি আদিম টাইপ অর্থাত হিসাবে জানি int- এ মধ্যে সি # যেহেতু

bigint SQL সার্ভার মধ্যে সরাসরি মানচিত্র int64 অর্থাত একটি আদিম টাইপ হিসাবে জানি দীর্ঘ মধ্যে সি #

বৃহত্তর থেকে পূর্ণসংখ্যার এখানে সংজ্ঞা দেওয়া থাকলে একটি সুস্পষ্ট রূপান্তর



0

যদি আপনি ব্যবহার করছেন আপনার ডাটাবেস সারণিতে বিগিন্ট করছেন , আপনি লং ইন সি ব্যবহার করতে পারেন #


-3

আমি একটি ডেটাগ্রিডভিউতে দেখানোর জন্য একটি বিগিন্ট ডেটাটাইপ পরিচালনা করছি এবং এটি এর মতো করে তৈরি করেছি

something = (int)(Int64)data_reader[0];
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.