Bir MS SQL 2008 Veritabanından dbtype.time sütun türüne sahip bir MS SQL 2008 Veritabanından, DAAB 4.0 çerçevesiyle C# kullanarak bir sonuç okuyorum.DbType.Time Datapaner Sonuç Timespan Nesne Nasıl Dönüştürülür?
Sorunum, MSDN dokümanlar dbtype.time bir zaman çizelgesiyle eşleşmesi gerektiğini, ancak gördüğüm zaman çizelgesi için yalnızca yakın kurucunun uzun olduğunu kabul ettiği ve veri okuyucusundan döndürülen sonucun uzun veya doğrudan zaman aralığı.
Bu Article datareader.getTimeSpan() yöntemini gösteren verileri buldum, ancak daab 4.0'daki datareader bu yönteme sahip görünmüyor.
Sonuç, sonucu veri okuyucudan zaman çizelgesi nesnesine nasıl dönüştürebilirim?
Hem senin hem de Ken'in çözümleri iyi. Bununla birlikte, değer boşsa, Ken'in çözümünün istisna mesajı daha açıklayıcıdır. 'SqlNullValueException - Veri Boş. Bu yöntem veya özellik boş değerlerde çağrılmaz 'VS' InvalidCastException - Belirtilen döküm geçerli değil '. – TheWanderingMind
Eğer sütun null olabilir eğer BishopBarber yorum cevap vermek için TimeSpan'a dönüştürmelisiniz? NULL türünü ve null değerini kontrol edin. 'ZamanGeçişi? span = okuyucu ["tsfield"] == DBNull.Value? (TimeSpan?) Null: (TimeSpan?) Okuyucu ["tsfield"] ' –
Bu çözümü daha iyi buldum çünkü genellikle veri okuyucuma dizin yoluyla erişemiyorum. Ancak, null'u denetleyen bir ara yöntemim var. – MichaelChan