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

Dépassement SqlDateTime

7 réponses
Avatar
SL3News
Bonjour,
J'ai un WindowsForm basé sur un TableAdapter avec une source de données
pouvant contenir des dates vides.
Lorsque je veux faire une sauvegarde, j'obtiens le message suivant :
Dépassement SqlDatetime. Doit être compris entre 1/1/1753 12:00:00 AM et
31/12/9999 11:59:59 PM.
Comment faire donc pour que la sauvegarde marche même si un contrôle
contenant une date n'a pas été renseignée?
Merci d'avance pour vos contributions.

7 réponses

Avatar
Gilles TOURREAU
Le Mon, 17 Sep 2007 17:11:19 +0200, SL3News a écrit:

Bonjour,
J'ai un WindowsForm basé sur un TableAdapter avec une source de données
pouvant contenir des dates vides.
Lorsque je veux faire une sauvegarde, j'obtiens le message suivant :
Dépassement SqlDatetime. Doit être compris entre 1/1/1753 12:00:00 AM et
31/12/9999 11:59:59 PM.
Comment faire donc pour que la sauvegarde marche même si un contrôle
contenant une date n'a pas été renseignée?
Merci d'avance pour vos contributions.





Il faut mettre votre donnée à NULL (DBNull.Value)...

Exemple :
MonDataSet.MaTable[NuméroLigne][ColonneDateTime] = DBNull.Value;

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
SL3News
"Gilles TOURREAU" a écrit dans le message de news:

Le Mon, 17 Sep 2007 17:11:19 +0200, SL3News a écrit:

Bonjour,
J'ai un WindowsForm basé sur un TableAdapter avec une source de données
pouvant contenir des dates vides.
Lorsque je veux faire une sauvegarde, j'obtiens le message suivant :
Dépassement SqlDatetime. Doit être compris entre 1/1/1753 12:00:00 AM et
31/12/9999 11:59:59 PM.
Comment faire donc pour que la sauvegarde marche même si un contrôle
contenant une date n'a pas été renseignée?
Merci d'avance pour vos contributions.





Il faut mettre votre donnée à NULL (DBNull.Value)...

Exemple :
MonDataSet.MaTable[NuméroLigne][ColonneDateTime] = DBNull.Value;




Merci.
Je vais tester ce que vous me proposez.
Avatar
SL3News
"Gilles TOURREAU" a écrit dans le message de news:

Le Mon, 17 Sep 2007 17:11:19 +0200, SL3News a écrit:

Bonjour,
J'ai un WindowsForm basé sur un TableAdapter avec une source de données
pouvant contenir des dates vides.
Lorsque je veux faire une sauvegarde, j'obtiens le message suivant :
Dépassement SqlDatetime. Doit être compris entre 1/1/1753 12:00:00 AM et
31/12/9999 11:59:59 PM.
Comment faire donc pour que la sauvegarde marche même si un contrôle
contenant une date n'a pas été renseignée?
Merci d'avance pour vos contributions.





Il faut mettre votre donnée à NULL (DBNull.Value)...

Exemple :
MonDataSet.MaTable[NuméroLigne][ColonneDateTime] = DBNull.Value;




J'ai essayé. Cela ne marche pas apparemment? Message d'erreur : impossible
de convertir DBNull?Value en type DateTime?

A+
Avatar
Gilles TOURREAU
Le Tue, 18 Sep 2007 08:08:19 +0200, SL3News a écrit:

"Gilles TOURREAU" a écrit dans le message de
news:

Le Mon, 17 Sep 2007 17:11:19 +0200, SL3News a écrit:

Bonjour,
J'ai un WindowsForm basé sur un TableAdapter avec une source de données
pouvant contenir des dates vides.
Lorsque je veux faire une sauvegarde, j'obtiens le message suivant :
Dépassement SqlDatetime. Doit être compris entre 1/1/1753 12:00:00 AM
et
31/12/9999 11:59:59 PM.
Comment faire donc pour que la sauvegarde marche même si un contrôle
contenant une date n'a pas été renseignée?
Merci d'avance pour vos contributions.





Il faut mettre votre donnée à NULL (DBNull.Value)...

Exemple :
MonDataSet.MaTable[NuméroLigne][ColonneDateTime] = DBNull.Value;




J'ai essayé. Cela ne marche pas apparemment? Message d'erreur :
impossible
de convertir DBNull?Value en type DateTime?

A+





Tu peux montrer ton code ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
SL3News
"Gilles TOURREAU" a écrit dans le message de news:

Le Tue, 18 Sep 2007 08:08:19 +0200, SL3News a écrit:

"Gilles TOURREAU" a écrit dans le message de
news:

Le Mon, 17 Sep 2007 17:11:19 +0200, SL3News a écrit:

Bonjour,
J'ai un WindowsForm basé sur un TableAdapter avec une source de données
pouvant contenir des dates vides.
Lorsque je veux faire une sauvegarde, j'obtiens le message suivant :
Dépassement SqlDatetime. Doit être compris entre 1/1/1753 12:00:00 AM
et
31/12/9999 11:59:59 PM.
Comment faire donc pour que la sauvegarde marche même si un contrôle
contenant une date n'a pas été renseignée?
Merci d'avance pour vos contributions.





Il faut mettre votre donnée à NULL (DBNull.Value)...

Exemple :
MonDataSet.MaTable[NuméroLigne][ColonneDateTime] = DBNull.Value;




J'ai essayé. Cela ne marche pas apparemment? Message d'erreur :
impossible
de convertir DBNull?Value en type DateTime?

A+





Tu peux montrer ton code ?




Voici un extrait du code (avec la base de données MaDbc, la table Client et
le champ DateNais de type DateTime) :
DataRow dr = ((DataRowView)clientBindingSource.Current).Row;
((MaDbcDataSet.ClientRow)dr).datenais = DBNull.Value ;
J'obtiens le message d'erreur suivant à la compilation : Impossible de
convertir implicitement le type 'System.DBNull' en 'System.DateTime'.

PS : j'avais essayé le code suivant qui me retourne également une erreur à
la compilation : le nom datenais n'existe pas dans le contexte actuel
nPosi=clientBindingSource.Position;
maDbcDataSet.Client[nPosi][datenais] = DBNull.Value ;
Avatar
Gilles TOURREAU
Le Wed, 19 Sep 2007 08:28:54 +0200, SL3News a écrit:

"Gilles TOURREAU" a écrit dans le message de
news:

Le Tue, 18 Sep 2007 08:08:19 +0200, SL3News a écrit:

"Gilles TOURREAU" a écrit dans le message de
news:

Le Mon, 17 Sep 2007 17:11:19 +0200, SL3News a écrit:

Bonjour,
J'ai un WindowsForm basé sur un TableAdapter avec une source de
données
pouvant contenir des dates vides.
Lorsque je veux faire une sauvegarde, j'obtiens le message suivant :
Dépassement SqlDatetime. Doit être compris entre 1/1/1753 12:00:00 AM
et
31/12/9999 11:59:59 PM.
Comment faire donc pour que la sauvegarde marche même si un contrôle
contenant une date n'a pas été renseignée?
Merci d'avance pour vos contributions.





Il faut mettre votre donnée à NULL (DBNull.Value)...

Exemple :
MonDataSet.MaTable[NuméroLigne][ColonneDateTime] = DBNull.Value;




J'ai essayé. Cela ne marche pas apparemment? Message d'erreur :
impossible
de convertir DBNull?Value en type DateTime?

A+





Tu peux montrer ton code ?




Voici un extrait du code (avec la base de données MaDbc, la table Client
et
le champ DateNais de type DateTime) :
DataRow dr = ((DataRowView)clientBindingSource.Current).Row;
((MaDbcDataSet.ClientRow)dr).datenais = DBNull.Value ;
J'obtiens le message d'erreur suivant à la compilation : Impossible de
convertir implicitement le type 'System.DBNull' en 'System.DateTime'.

PS : j'avais essayé le code suivant qui me retourne également une erreur
à
la compilation : le nom datenais n'existe pas dans le contexte actuel
nPosi=clientBindingSource.Position;
maDbcDataSet.Client[nPosi][datenais] = DBNull.Value ;






DBNull.Value est de type DBNull et DateNais est de type DateTime...

C'est un peu comme si vous écrivez :
int i = 5;
string s = "Coucou";

s = i; //Ca compile pas... Car "s" et "i" ne sont pas du même type !

Pour votre cas vous devez écrire :

Dans un DataSet non typé :
maDbcDataSet.Client[nPosi]["datenais"] = DBNull.Value

ou dans un DataSet typé (dans votre cas) :
maDbcDataSet.Client[nPosi].SetdatenaisNull(); //La méthode a dû être
générée automatiquement par VS2005...

Cordialement


--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
SL3News
"Gilles TOURREAU" a écrit dans le message de news:

Le Wed, 19 Sep 2007 08:28:54 +0200, SL3News a écrit:

"Gilles TOURREAU" a écrit dans le message de
news:

Le Tue, 18 Sep 2007 08:08:19 +0200, SL3News a écrit:

"Gilles TOURREAU" a écrit dans le message de
news:

Le Mon, 17 Sep 2007 17:11:19 +0200, SL3News a écrit:

Bonjour,
J'ai un WindowsForm basé sur un TableAdapter avec une source de
données
pouvant contenir des dates vides.
Lorsque je veux faire une sauvegarde, j'obtiens le message suivant :
Dépassement SqlDatetime. Doit être compris entre 1/1/1753 12:00:00 AM
et
31/12/9999 11:59:59 PM.
Comment faire donc pour que la sauvegarde marche même si un contrôle
contenant une date n'a pas été renseignée?
Merci d'avance pour vos contributions.





Il faut mettre votre donnée à NULL (DBNull.Value)...

Exemple :
MonDataSet.MaTable[NuméroLigne][ColonneDateTime] = DBNull.Value;




J'ai essayé. Cela ne marche pas apparemment? Message d'erreur :
impossible
de convertir DBNull?Value en type DateTime?

A+





Tu peux montrer ton code ?




Voici un extrait du code (avec la base de données MaDbc, la table Client
et
le champ DateNais de type DateTime) :
DataRow dr = ((DataRowView)clientBindingSource.Current).Row;
((MaDbcDataSet.ClientRow)dr).datenais = DBNull.Value ;
J'obtiens le message d'erreur suivant à la compilation : Impossible de
convertir implicitement le type 'System.DBNull' en 'System.DateTime'.

PS : j'avais essayé le code suivant qui me retourne également une erreur
à
la compilation : le nom datenais n'existe pas dans le contexte actuel
nPosi=clientBindingSource.Position;
maDbcDataSet.Client[nPosi][datenais] = DBNull.Value ;






DBNull.Value est de type DBNull et DateNais est de type DateTime...

C'est un peu comme si vous écrivez :
int i = 5;
string s = "Coucou";

s = i; //Ca compile pas... Car "s" et "i" ne sont pas du même type !

Pour votre cas vous devez écrire :

Dans un DataSet non typé :
maDbcDataSet.Client[nPosi]["datenais"] = DBNull.Value

ou dans un DataSet typé (dans votre cas) :
maDbcDataSet.Client[nPosi].SetdatenaisNull(); //La méthode a dû être
générée automatiquement par VS2005...



Merci pour votre réponse.
Je vais la tester.
Par ailleurs, il semble que ce que vous me proposez me permettra de trouver
la solution à d'autres problèmes qui m'embêtaient également depuis un
certain temps.