2011-05-06 13 views
14

Veritabanımdan yıl ve saat bileşenlerine datetime kesmek için bu kodu kullanıyorum. YearOfRelease ve Runtime değişkenleri, "dd/AA/yyyy ss: dd: ss" biçimindeki datetime öğesini içerir. Önceden çalışıyordu ancak şimdi şu hatayı veriyordu:Hata alma: Dize referansı bir String örneğine ayarlanmamış. Parametre adı: s

Dize referansı bir String örneğine ayarlanmadı. Parametre adı: s

Sadece, herkes aniden mükemmel çalışıyordu önce bu soruna neden olan beni neden 'sıfır' bildirebilir misiniz DateTime.ParseExact işlevinde yanlış bir şey olabilir mi?

DateTime dt2 = new DateTime(); 


    dt = DateTime.ParseExact(YearOfRelease, "dd/MM/yyyy hh:mm:ss", null); 

    Year = dt.Year.ToString(); 


    dt2 = DateTime.ParseExact(RunTime, "dd/MM/yyyy hh:mm:ss", null); 
    string hour = dt2.Hour.ToString(); 
    string min = dt2.Minute.ToString(); 

    Time = hour + ":" + min; 

cevap

12

DateTime.ParseExact ilk parametresi 's' adında bir dize parametresidir.

Bu nedenle, programınızda YearOfRelease veya RunTime boş görünüyor. DateTime.ParseExact'ı çağırmadan önce bunların ayarlandığından emin olun.

+0

Veritabanında mı demek istiyorsunuz? Hayır, onlar null değil, ben sadece kontrol ettim – QPTR

+1

Teşekkürler, yeniden kontrol ettim, C# kodumda yanlış bir şeyler vardı, değişkenler doğru değerleri almıyordu. – QPTR