12. juni 2006 - 23:50Der er
10 kommentarer og 1 løsning
If Nothing - returnér intet
Hej - jeg har et lille problem med nedenstående property som jeg bruger ved indskrivning af en dato til databasen, hvis altså der er en dato i den givne situation. Hvis der der ikke er en dato skal der slet ikke skrives/returneres noget. Som jeg gør det nu, og der ikke er en dato, indsættes der alligevel "01-01-0001 00:00:00", men feltet skal helst bare forblive helt blankt.
Prøver med:
Public Property Dato() As Date Get If _Dato = Nothing Then Return Nothing Else : Return _Dato End If End Get Set(ByVal value As Date) _Dato = value End Set End Property
Hvis en Date er en DateTime, så kan den ikke være Nothing (det er en valuetype). Hvis du benytter 2.0 kan du lave en nullable DateTime, ellers kan du spørge på if _Dato = DateTime.MinValue Mvh
System.Data.OleDb.OleDbException: Parameter @Dato har ingen standardværdi. at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
Kan det være fordi den gerne vil have defineret en standardværdi i selve feltet i databasen, når der ikke indsættes noget, eller skal der laves en for parameteren?
Skal man ikke på en eller anden på have sat sin parameter DBNull hvis den er tom? Jeg kan ikke helt finde ud af hvordan Nullable(of DateTime) fungerer ...
Fejle kan komme i lidt forskellige situationer... Det kan godt være det bare er fordi du har flere parametre end værdier i den resulterende sql. Kan du ikke poste den? Og jo - du kan tilskrive dbnull til parameteren hvis din property er null. Mvh
Hej igen, jeg har brugt at indsætte DateTime.Now() i database-feltet hvis dato er tom. Men har stadigvæk brugt Nullable(of DateTime), hvilket gør at jeg kan få vist ingenting (i stedet for 01-01-0001 00:00:00) når jeg fremviser det i et GridView. Så løsningen fungerer godt til formålet :-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.