2016-04-01 13 views
0

tarihinde geçerli değil Boş değer bir tarih veri türü değişkenine kaydetmeye çalışıyorum. Değer, DataSet'umdan kaynaklandı, ancak belirtilen belirtme geçerli değil. İşte benim kodum:Belirtilen satır geçerli nullable

Boş değerimi Tarih değişkenime saklamanın bir yolu var mı? Visual Basic 2005 kullanıyorum. Teşekkürler.

enter image description here

enter image description here

+0

Sadece VS 2015 var ama çok 2005 yılında çalışıp çalışmadığını denemek. Nesne = DSMemberAttendance.Tables ("tblMemberAttendance") olarak o 'Dim Sıralar (iCounter) ("TimeOut") varTimeOut Nullable olarak (DateTime Of Dim) = If (o IsNot Yoktur, DirectCast (o, DateTime), Hiçbir şey) ' –

+0

DSMemberAttendance.Tables (" tblMemberAttendance ") gerçek veri türü nedir. Satırlar (iCounter) (" TimeOut ")? –

+0

@AlexB. Denedim ama IF sonra "Beklentinin sonu bekleniyor" yazan bir hata var. – aer

cevap

1

veritabanı kod veritabanındaki bir NULL değeri için hiçbir şey döndürmez. Bunun yerine belirli bir tür döndürür (hatırladığım gibi DBNull). Özellikle null veritabanını kontrol etmelisiniz (veritabanı alanında bir IsNull özelliği olabilir) ve Nullable'ınızı bu durumda uygun bir tarih belirlediğinde sadece Null'a atanabilir. Stuartlar istinaden

2

Aşağıdaki kod parçası hile yapmak gerekir cevap:

Dim varTimeOut As Nullable(Of DateTime) 
    If DSMemberAttendance.Tables("tblMemberAttendance").Rows(iCounter).IsNull("TimeOut") Then 
     varTimeOut = Nothing 
    Else 
     varTimeOut = DirectCast(DSMemberAttendance.Tables("tblMemberAttendance").Rows(iCounter)("TimeOut"), DateTime) 
    End If 

bu o çivilenmiş ve ben ödünç tüyleri kendimi süslüyor yapmak istemiyoruz çünkü Stuarts cevabı kabul edin çalışıyorsa.

+0

Teşekkürler ... Başka bir teknik öğrendim. – aer

+0

Döküm kavramına google denedim ... Veritabanımdan itibaren, TimeOut bir Tarih/Saat türüdür, DataGridView'imde bir tarih olmadan varTimeOut değerini görüntülemek için bir yol arıyorum. mm: ss tt. Bunu başarmanın herhangi bir yolunu önerir misin? MSAccess'teki alanımın formatını değiştirmeye çalıştım ama bana da yardımcı olmadı. Cevabınız için gerçekten minnettarım. – aer

+1

Goto DataGridView özellikleri -> Sütunlar [...] -> TimeOut sütununuzu seçin -> DefaultCellStyle'ı açın [...] -> Biçim [...] -> En sevdiğiniz DateTime biçimini seçti –