30 Temmuz 2009 Perşembe

DateTime Null Alan Girmek

Sql de DateTime veri tipleriyle çalışmak Null yada String.Empty ("") atanamadığından biraz problem çıkartır.

diyelimki kullanıcı tarih girmemiş ve sizde doğal olarak tarih tipi girilmemişse tarih alanına bir şey yazdırma diyebilmelisiniz.

null atamayız "" atamayız ozaman
DBNull.Value atayabilirsiniz.
Peki .Net de DateTime Tipinede hiç bir şey girilmediğinde null yada "" taşımak yerine Datetime.MinValue atayarak boş gelmiş gibi düşünebilirsiniz.

yani şöyle bir şey yaptım ben


if (customerequipment.EquipmentInstallCATDate == DateTime.MinValue)
cmd.Parameters.Add("@dEquipmentInstallCATDate", SqlDbType.DateTime).Value = DBNull.Value;
else
cmd.Parameters.Add("@dEquipmentInstallCATDate", SqlDbType.DateTime).Value = customerequipment.EquipmentInstallCATDate;

1 yorum:

  1. Tamda bu sorunla baş ediyorum. Şirketimiz öğrenci tanıtım programına gidecekmiş. Burda liseyi bitiren ve bitirmeyen - lisansı bitiren ve bitirmeyen olarak kategoriler bulunacak. Toplam 6 Adet datetime? var. Lisans başlangıç - bitiş - tahmini bitiş gibi bunun aynısı lisede var.
    Controller.cs içinde ;

    DateTime? LisansBaslangicTarih = cnvrt["lisansBaslamaTarih"].Value();
    af.LisansBaslangicTarih = LisansBaslangicTarih;
    DateTime? LisansBitisTarih = cnvrt["lisansBitisTarih"].Value();
    af.LisansBitisTarih = LisansBitisTarih;
    DateTime? LisansTahminiBitisTarih = cnvrt["lisansTahminiBitisTarih"].Value();
    af.LisansTahminiBitisTarih = LisansTahminiBitisTarih;

    Şu şekilde yazılmış durumda. Eğer kullanıcı tarih girmezse program hata veriyor. error CS1003: Syntax error, ':' expected

    NE YAPMAM GEREKİYOR ?

    YanıtlaSil