djbabou
Messages postés155Date d'inscriptiondimanche 21 octobre 2007StatutMembreDernière intervention23 novembre 2015
-
18 janv. 2008 à 16:52
djbabou
Messages postés155Date d'inscriptiondimanche 21 octobre 2007StatutMembreDernière intervention23 novembre 2015
-
24 janv. 2008 à 15:13
Slt, en compilant une application réalisée en c# sous Visual Studio , couplé à une base de donnée Access , je recoit l'erreur suivante :
"Impossible de définir Column 'num_titre' à null. Utilisez DBNull à la place."
Comme vous l'aurez certainement compris, num_titre est le nom d'une colonne de la base de données.
J'aimerais donc savoir ce que cette erreur signifie et ce que je pourrait faire pour gérer cette exception !
Merci
A voir également:
La valeur ne peut pas être null. nom du paramètre value
djbabou
Messages postés155Date d'inscriptiondimanche 21 octobre 2007StatutMembreDernière intervention23 novembre 2015 18 janv. 2008 à 21:02
Maintenant que j'y pense, si j'ai cette erreur, c'est peut être du fait que la requête ne renvoie aucun résultat !
Dans ce cas la, j'ai pensé à utilier une expression du genre qui devrait marcher :
if not curseur.Champs(nom du champs).Equals(dbnull.Value) then .....
Il me faudrait donc utiliser un curseur. Le problème est que moi je n'utilise aucun curseur de toute mon application et du coup, il n'y a aucun moyen de tester mon code avec ça !!!
Il me faudrait donc trouver une équivalence de cette expression mais qui n'utiliserai pas de curseur. Mais là encore je bugg !!!
Il me faudrait un peu d'aide !!!! Je peux compter sur vous j'espère !!!!
djbabou
Messages postés155Date d'inscriptiondimanche 21 octobre 2007StatutMembreDernière intervention23 novembre 2015 18 janv. 2008 à 21:28
Je pense qu'avec un peu de code se sera peut être plus clair :
//création d'une nouvelle ligne
this.DtrGridA =
this.DtsGrid.Tables[
"maximusique_catalogue_titre"].NewRow();
//remplissage des champs
this.DtrGridA[
"num"] =
this.DtsGrid.Tables[
"maximusique_catalogue_titre"].Rows.Count + 1;
this.DtrGridA[
"num_titre"] =
this.CsV.Num;
this.DtrGridA[
"code_produit"] =
this.CsV.Album;
//ajout de la ligne à la table
this.DtsGrid.Tables[
"maximusique_catalogue_titre"].Rows.Add(DtrGridA);
//on met tout dans la base de donnée
this.CmdGrid =
new
OleDbCommandBuilder(Dta);
Dta.UpdateCommand = CmdGrid.GetUpdateCommand();
Dta.Update(DtsGrid,
"maximusique_catalogue_titre");
maximusique_catalogue_titre est ma table
DtsGrid est mon dataset
DtrGridA est mon datarow
CsV est ma classe avec les variables et leur propriétés ( set et get )
mathvez
Messages postés42Date d'inscriptionvendredi 5 janvier 2007StatutMembreDernière intervention15 février 2008 18 janv. 2008 à 22:33
Utilise la fonction IsNull pour gérer ton exception :
if isNull(itemquicausel'exception)
Else
End if
D'après moi tu essai d'inserrer un enregistrement a ton tableau et le design de ta table ne peux contenir null pour ce champs, alors rempli tout les champs que tu ne veux pas avec une espace: " " . Tu peux aussi enlever ta contrainte de null si tu as accès au design de ta table.
djbabou
Messages postés155Date d'inscriptiondimanche 21 octobre 2007StatutMembreDernière intervention23 novembre 2015 21 janv. 2008 à 14:53
Salut merci pour ta reponse !!!
J'ai testé la fonction ISNULL mais malheureusement j'ai le même problème . Ce qui me semble être le plus bizare c'est que la table que j'utilise n'interdit pas les valeurs null !
En principe je n'aurai pas du avoir d'erreur à ce niveau là !
J'ai nettoyer ma solution et puis j'ai regénéré, avec l'espoir que ... mais bon voila ça ne marche toujours pas , donc je continue à chercher .
En tout cas, merci pour ta réponse et si tu à une autre idée, ou quelqu'un d'autre en a une, faites le moi savoir .
Merci encore
Vous n’avez pas trouvé la réponse que vous recherchez ?
djbabou
Messages postés155Date d'inscriptiondimanche 21 octobre 2007StatutMembreDernière intervention23 novembre 2015 22 janv. 2008 à 14:00
Salut !
Ok je pense que j'ai trouvé l'erreur !!
En insérant des données dans la base de données Access , le champs "num_titre" prend par défaut la valeur "null" !
J'ai essayé de corriger l'erreur en modifiant diretement ce champs dans la base de données pour qu'il n'interdise plus les null mais, à chaque débogage , num_titre prend par défaut la valeur "null" !!!
Ca semble incroyable mais à chaque fois que je vérifie la BD dans mon dossier bin , ce champs à pour cette valeur !!!
Je n'y comprends plus rien donc j'ai voulu reprendre le code et trouver une façon plus simple d'insérer des données ( provenant de textbox et de combobox ) tout en chargeant une datagridview, mais il me semble que c'est la meilleur des solutions .
Donc je continue à chercher activement où est l'erreur et acepte volontiers toute aide !!!
djbabou
Messages postés155Date d'inscriptiondimanche 21 octobre 2007StatutMembreDernière intervention23 novembre 2015 24 janv. 2008 à 15:13
Re salut a tous !!! Lol
Voila, je tenais juste à mettre la solution du probleme pour que ceux qui ont les mêmes erreurs que moi ou qui peuvent se servir du code pour leur programmation puisse en profiter ! Merci a Thot49 qui m'a donnée les explications necessaires pour résoudre mes problèmes !!
Il existe donc plusieurs erreurs dans le code :
- les données saisies ne sont jamais renvoyées dans les variables
- les tables de la base de données doivent posseder une clé primaire ( ce n'était pas le cas pour moi )