دسته بندی ها
20:46 1401/06/02

خالی یا Null گذاشتن فیلد تاریخ (DateTime) در Sql Server

مشخصات سوال کننده :
کاربر : farhadrezazadeh     امتیاز کاربر : 3     رتبه کاربر : 136
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 1942
هوش مصنوعی

پاسخ هوش مصنوعی

برای اینکه فیلدهای تاریخ پاسخ و تاریخ برگشت کتاب در هنگام ثبت امانت خالی بمانند، شما باید به این فیلدها مقدار Nullable بدهید. در زبان C#، می توانید با استفاده از DateTime? این کار را انجام دهید. در کد زیر، کافی است فیلدهای answereDate و backDate را به DateTime? تغییر دهید:

public class BarrowBook
{
   [Key]
   public int Id { get; set; }
   public int BookId { get; set; }
   public string userId { get; set; }
   public byte flag { get; set; }
   public DateTime requestDate { get; set; }
   public DateTime? answereDate { get; set; }
   public DateTime? backDate { get; set; }
   public int Price { get; set; }
}

با این تغییر، در زمان ثبت درخواست امانت، answereDate و backDate به طور پیش فرض null خواهند بود و هیچ مقداری به 0001-01-01T00:00:00 تغییر نمی کنند.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 11:44 1401/06/03

بعضی از DataType ها مقدار Null رو به صورت پیش فرض قبول نمیکنن. مثلا DateTime یا int یا long. این نوع داده ای به صورت پیش فرض یک مقداری رو توی سلول مربوطه ذخیره میکنن. اگر میخواید این فیلدها مقدار null رو بپذیره موقعی که تعریف می کنید باید nullable تعریف کنید. به کدهای زیر که کدهای خودتون هست دقت کنید :

public class BarrowBook
{
   [Key]
   public int Id { get; set; }
   public int BookId { get; set; }
   public string userId { get; set; }
   public byte flag { get; set; }
   public DateTime requestDate { get; set; }
   public DateTime? answereDate { get; set; }
   public DateTime? backDate { get; set; }
   public int Price { get; set; }
}

اگر دقت کنید علامت ؟ جلوی نوع داده ای قرار داده شده به این معنی که این فیلدها به صورت پیش فرض null باید باشن.

به این پاسخ امتیاز بدهید    1
امتیاز: 1635 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود