একটি তারিখ / সময় ডেটা টাইপের প্রকৃতির কারণে এটিতে কোনও null
মান থাকতে পারে না , অর্থাত এটির একটি মান থাকা দরকার, এটি খালি হতে পারে না বা কিছুই থাকতে পারে না। যদি আপনি কোনও তারিখ / সময় পরিবর্তনশীল হিসাবে চিহ্নিত করেন nullable
তবে কেবলমাত্র আপনি এটিতে একটি নাল মান নির্ধারণ করতে পারেন। সুতরাং আপনি যা করতে যাচ্ছেন তা দুটি জিনিসের মধ্যে একটি (আরও কিছু থাকতে পারে তবে আমি কেবল দুটি বিষয়েই ভাবতে পারি):
আপনার ভেরিয়েবলের ন্যূনতম তারিখ / সময় মান নির্ধারণ করুন যদি আপনার কাছে এর মান না থাকে। আপনি সর্বাধিক তারিখ / সময় মানও নির্ধারণ করতে পারেন - যে কোনও উপায়ে আপনার পক্ষে উপযুক্ত। আপনার তারিখ / সময়ের মানগুলি পরীক্ষা করার সময় কেবল নিশ্চিত হয়ে নিন যে আপনি স্থির সাইট-ওয়াইড রয়েছেন। ব্যবহারের সিদ্ধান্ত নিন min
অথবা max
এবং লাঠি এটা দিয়ে।
আপনার তারিখ / সময় পরিবর্তনশীল হিসাবে চিহ্নিত করুন nullable
। আপনি null
যদি তার সাথে কোনও ভেরিয়েবল না রাখেন তবে আপনি আপনার তারিখ / সময় পরিবর্তনশীল সেট করতে পারেন।
আমার উদাহরণটি ব্যবহার করে আমার প্রথম পয়েন্টটি প্রদর্শন করুন। DateTime
পরিবর্তনশীল টাইপ নাল সেট করা যাবে না, এটা এই ক্ষেত্রে, একটি মান প্রয়োজন আমি এটি সেট করতে যাচ্ছি DateTime
যদি কোনো মান এর সর্বনিম্ন মান।
আমার দৃশ্যটি আমার BlogPost
ক্লাস আছে have এটির অনেকগুলি পৃথক ক্ষেত্র / বৈশিষ্ট্য রয়েছে তবে আমি উদাহরণ হিসাবে কেবল দুটি ব্যবহার করতে পছন্দ করেছি। DatePublished
পোস্টটি যখন ওয়েবসাইটে প্রকাশিত হয়েছিল এবং একটি তারিখ / সময় মান থাকতে হয়। DateModified
যখন কোনও পোস্ট সংশোধন করা হয়, সুতরাং এতে কোনও মান থাকতে হবে না, তবে মান থাকতে পারে।
public class BlogPost : Entity
{
public DateTime DateModified { get; set; }
public DateTime DatePublished { get; set; }
}
ADO.NET
ডাটাবেস থেকে ডেটা পেতে ব্যবহার করে (নির্ধারণের DateTime.MinValue
কোনও মূল্য নেই):
BlogPost blogPost = new BlogPost();
blogPost.DateModified = sqlDataReader.IsDBNull(0) ? DateTime.MinValue : sqlDataReader.GetFieldValue<DateTime>(0);
blogPost.DatePublished = sqlDataReader.GetFieldValue<DateTime>(1);
DateModified
ক্ষেত্রটি হিসাবে চিহ্নিত করে আপনি আমার দ্বিতীয় বিষয়টি সম্পাদন করতে পারেন nullable
। এখন আপনি এটি সেট করতে পারেন null
যদি এর কোনও মূল্য না থাকে:
public DateTime? DateModified { get; set; }
ADO.NET
ডাটাবেস থেকে ডেটা পেতে ব্যবহার করে, এটি উপরে যেভাবে করা হয়েছিল তার চেয়ে কিছুটা ভিন্ন দেখাচ্ছে ( null
পরিবর্তে বরাদ্দ দেওয়া DateTime.MinValue
):
BlogPost blogPost = new BlogPost();
blogPost.DateModified = sqlDataReader.IsDBNull(0) ? (DateTime?)null : sqlDataReader.GetFieldValue<DateTime>(0);
blogPost.DatePublished = sqlDataReader.GetFieldValue<DateTime>(1);
আমি আশা করি এটি কোনও বিভ্রান্তি দূর করতে সহায়তা করে। প্রদত্ত যে আমার প্রতিক্রিয়া প্রায় 8 বছর পরে আপনি সম্ভবত একজন বিশেষজ্ঞ সি # প্রোগ্রামার হবেন :)