Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

date a valeur nulle

4 réponses
Avatar
Pompier Christian
bonjour,
y'a t'il un moyen de passer une valeur a un type date. Dans sql serveur j'ai
vu qu'on pouvait mette nulle a datetime mais je n'arrive pas lui passer, il
me retourne une erreur

merci

4 réponses

Avatar
Bruno Chassagne
Bonjour,

Le type System.DateTime du .NET Framework est une structure, donc un type de
valeur. La valeur null n'est donc pas autorisée.

Cordialement,

Bruno Chassagne

"Pompier Christian" a écrit :

bonjour,
y'a t'il un moyen de passer une valeur a un type date. Dans sql serveur j'ai
vu qu'on pouvait mette nulle a datetime mais je n'arrive pas lui passer, il
me retourne une erreur

merci





Avatar
Isabelle Prawitz
Bonjour !
Par contre, si c'est pour initialiser un champ de table sql server, tu dois avoir DbNull comme valeur possible, si mes
souvenirs sont bons (sous toutes réserves ;-) !)
A+
Isa

"Bruno Chassagne" a écrit dans le message de
news:
Bonjour,

Le type System.DateTime du .NET Framework est une structure, donc un type de
valeur. La valeur null n'est donc pas autorisée.

Cordialement,

Bruno Chassagne

"Pompier Christian" a écrit :

> bonjour,
> y'a t'il un moyen de passer une valeur a un type date. Dans sql serveur j'ai
> vu qu'on pouvait mette nulle a datetime mais je n'arrive pas lui passer, il
> me retourne une erreur
>
> merci
>
>
>


Avatar
Pompier Christian
j'ai essaye mais il en veut pas
merci a+
"Isabelle Prawitz" a écrit dans le message de
news:OSeRf5L%
Bonjour !
Par contre, si c'est pour initialiser un champ de table sql server, tu


dois avoir DbNull comme valeur possible, si mes
souvenirs sont bons (sous toutes réserves ;-) !)
A+
Isa

"Bruno Chassagne" a écrit dans


le message de
news:
> Bonjour,
>
> Le type System.DateTime du .NET Framework est une structure, donc un


type de
> valeur. La valeur null n'est donc pas autorisée.
>
> Cordialement,
>
> Bruno Chassagne
>
> "Pompier Christian" a écrit :
>
> > bonjour,
> > y'a t'il un moyen de passer une valeur a un type date. Dans sql


serveur j'ai
> > vu qu'on pouvait mette nulle a datetime mais je n'arrive pas lui


passer, il
> > me retourne une erreur
> >
> > merci
> >
> >
> >




Avatar
Zoury
> > Par contre, si c'est pour initialiser un champ de table sql server, tu
dois avoir DbNull comme valeur possible



j'ai essaye mais il en veut pas



Tu ne peux pas mettre DBNull dans une variable de type Date. Ce qu'Isa
voulait dire c'est que si tu veux passer NULL à un champs de type datetime
dans une requête SQL tu peux utilisé DBNull.Value (comme valeur dans un
SqlParameter() par exemple).


Personnellement, j'initialise les DateTime à DateTime.MinValue. Ainsi si ma
valeur à un moment ou un autre de mon application une variable DateTime
égale DateTime.MinValue je la considère comme si elle n'avait pas été
initialisé (donc comme si elle était Null).

Ex ( de mémoire et non testé ) :
'***
Imports System.Globalization
Imports System.Data
Imports System.Data.SqlClient

Private Sub Update()

Dim dt As DateTime = DateTime.MinValue
Dim cmd As SqlCommand = New SqlCommand()

cmd.Connection = New SqlConnection("ma chaine de connexion")
cmd.Connection.Open()

cmd.CommandType = CommandType.Text
cmd.CommandText = _
String.Format("update table1(id, nom, date) values({0}, {1}, {2})",
_
1, "yanick", GetDateTimeSQLString(dt))

cmd.ExecuteNonQuery()
cmd.Connection.Close()

End Sub

Private Function GetDateTimeSQLString(ByVal dt As DateTime) As String
If (dt = DateTime.MinValue) Then
Return "null"
Else
Return String.Format("cast('{0}' as datetime)", _
dt.ToString(CultureInfo.InvariantCulture))
End If
End Function
'***

--
Cordialement
Yanick
MVP pour Visual Basic