Sql'de null olarak DateTime alanını ayarlamanız gerektiğinde iki durumum var. SQL sınıfları için C# ve LINQ kullanıyorum. Benim soru gibi olan stackoverflow ile ilgili pek çok soru okudum ama yine de benimkini biraz farklı besliyorum.Sql DateTime null değerinin null olarak ayarlanması LINQ
Yeni bir müşteri eklediğimizde.
Sorumlu kodu:
Customer customer = new Customer();
customer.CustomerName = txt_name.Text;
customer.DOB = dtp_dob.Checked ? DateTime.Parse(dtp_dob.Value.ToString("yyyy-MM-dd")) : //send null here;
customer.DOB System.DateTime olduğunu. Denedim ne
geçerli:
1)
customer.DOB = dtp_dob.Checked ? DateTime.Parse(dtp_dob.Value.ToString("yyyy-MM-dd")) : SqlDateTime.Null;
Ama SqlDateTime System.DateTime için dönüştürülemez olarak bu başarılı olmayacaktır.
2) Bu durumda
DateTime? nullDateTime = new DateTime();
customer.DOB = dtp_dob.Checked ? DateTime.Parse(dtp_dob.Value.ToString("yyyy-MM-dd")) : nullDateTime.Value
, başarılı inşa ancak bir SqlDateTime taşma özel durum oluşturur.
Öyleyse nasıl tanesiBirçok Otomatik Devam true Oluşturulan Değerini ayarlamak için önermek ve herhangi bir değer eklemek için değil LINQ Dataclass içinde
Mülkiyet DOB Üyesi boş değerini geçmesi. Doğru, insert durumlarda çalışır.
Ancak, şimdi, bazı datetime değerinin DOB alanına ayarlandığı bir müşteri girişi olduğunu varsayalım. Şimdi, kullanıcı bu değeri (doğum tarihini kaldır) silmek istiyorsa, bu durumda karşılık gelen müşteri sırasına yazılan tarih saatini temizlemek için UpdateOn kullanarak boş bir değer vermem gerekiyor.
DOB bu kod istediğini verecek null olduğundan
NULL değil, null olarak ayarlayamadınız mı? Sütun null olması durumunda –
'Customer.DOB'' DateTime' yerine 'DateTime'' olmalıdır. –