Dépassement SqlDateTime

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles TOURREAU
Le #12176841
Le Mon, 17 Sep 2007 17:11:19 +0200, 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.





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
SL3News
Le #12176831
"Gilles TOURREAU"
Le Mon, 17 Sep 2007 17:11:19 +0200, 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.





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.
SL3News
Le #12176821
"Gilles TOURREAU"
Le Mon, 17 Sep 2007 17:11:19 +0200, 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.





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+
Gilles TOURREAU
Le #12176801
Le Tue, 18 Sep 2007 08:08:19 +0200, SL3News
"Gilles TOURREAU" news:

Le Mon, 17 Sep 2007 17:11:19 +0200, 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.





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
SL3News
Le #12176741
"Gilles TOURREAU"
Le Tue, 18 Sep 2007 08:08:19 +0200, SL3News
"Gilles TOURREAU" news:

Le Mon, 17 Sep 2007 17:11:19 +0200, 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.





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 ;
Gilles TOURREAU
Le #12176731
Le Wed, 19 Sep 2007 08:28:54 +0200, SL3News
"Gilles TOURREAU" news:

Le Tue, 18 Sep 2007 08:08:19 +0200, SL3News
"Gilles TOURREAU" news:

Le Mon, 17 Sep 2007 17:11:19 +0200, 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.





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
SL3News
Le #12176721
"Gilles TOURREAU"
Le Wed, 19 Sep 2007 08:28:54 +0200, SL3News
"Gilles TOURREAU" news:

Le Tue, 18 Sep 2007 08:08:19 +0200, SL3News
"Gilles TOURREAU" news:

Le Mon, 17 Sep 2007 17:11:19 +0200, 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.





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.
Publicité
Poster une réponse
Anonyme