Accueil > Forum > > > > remplir un dataset avec une valeur null
remplir un dataset avec une valeur null
lundi 20 octobre 2008 à 14:30:01 |
remplir un dataset avec une valeur null

bellak
|
Salut tout le monde , j'ai un petit soucis avec le remplissage d'un dateset , donc j'ai deux dataset (DTSetAux,DtsetDevis) qui contiennent plusieurs et les memes tables (Dev...) , je veux remplir ma table "Dev" du "DtsetDevis" a partir de la table "Dev" du "DTSetAux" qu'elle peut contenir des champs null , pour le moment j'utilise le code : for(int k = 0; k < DTSetAux.Tables["DevisAux"].Rows.Count; k++) { dtSet.AuxDetail.AddAuxDetailRow(DTSetAux.Tables["DevisAux"].Rows[k][1].ToString(), DTSetAux.Tables["DevisAux"].Rows[k][2].ToString(), DTSetAux.Tables["DevisAux"].Rows[k][3].ToString(), Convert.ToInt32(DTSetAux.Tables["DevisAux"].Rows[k][4].ToString()), Convert.ToSingle(DTSetAux.Tables["DevisAux"].Rows[k][5].ToString()); } le probleme est sur les valeurs null , est-ce je suis obligé d'utiliser les if..else.. pour chaque champ pour verifier si c'est null ou non ?? ou bien il y a une propriete pour regler ce genre de probleme . merci d'avance .
|
|
lundi 20 octobre 2008 à 17:29:49 |
Re : remplir un dataset avec une valeur null

danious
|
Bonjour,
On dirait que tu utilises des dataset types. Si c'est le cas, utiliseDTSetAux.DevisAux[k] pour accéder à la k-ème ligne. Cette ligne ne sera plus de type DataRow "générique" mais de ton type particulier (DevisAuxRow normalement). Après, il suffit d'accéder aux champs en utilisant le "." comme pour n'importe quel champ d'une classe. En faisant comme ça, tes 3 premiers paramètres de type string ne poseront plus de problème. Pour les 2 derniers, si ta méthode demande des types non nullables et que tu récupères des types nullables depuis la table "DevisAux", pense à utiliser GetValueOrDefault sur ton type nullable.
Si tu n'utilises pas les DataSet typés, tu es obligé de tester si les champs sont null (en utilisant DBNull.Value), au mieux en utilisant la construction "<condition>?<si vrai>:<si faux>;"
|
|
lundi 20 octobre 2008 à 17:44:22 |
Re : remplir un dataset avec une valeur null

bellak
|
bonjour "danious" , merci pour la reponse , mon premier DataSet (DTSetAux) n'est pas un dataset typé par contre le deuxieme est typé donc si j'ai bien compris je dois passer par un dataset typé , si c'est le cas que dois-je faire apres exactement ?? merci .
|
|
mardi 21 octobre 2008 à 03:18:42 |
Re : remplir un dataset avec une valeur null

bellak
|
pour la deuxieme solution , le probleme c'est que je dois tester ,si je me trompe pas, "2"puissance"nbreColonne" fois si la valeur est null pour resoudre mon probleme . donc je dois utiliser la premiere solution . encore merci , le probleme reste ouvert et si quelqu'un a une autre solution je suis preneur .
|
|
mardi 21 octobre 2008 à 09:10:27 |
Re : remplir un dataset avec une valeur null

danious
|
En fait tu testerais autant de fois qu'il y a de valeurs qui peuvent être nulles, et à mon avis le temps d'exécution des tests sera très faible comparé aux temps des méthodes Convert.XXX. De toute façon, dans ton premier dataset, tu peux avoir des valeurs nulles, mais ta méthode AddAuxDetailRow ne les acceptera pas, le test est donc inévitable si tu gardes un fonctionnement similaire. Si tu peux utiliser un dataset typé pour ton premier dataset, tu contournes le problème car tu peux directement accéder aux champs (tout l'intérêt des DataSet typés) qui seront du bon type (int, string...) et pas du type object comme quand tu as utilisé par exemple DTSetAux.Tables["DevisAux"].Rows[k][4] Si tu peux enlever le "null autorisé" sur les champs de ta table, en leur mettant par exemple une valeur par défaut, tu n'auras plus ton problème non plus.
Sinon, simple question : pourquoi ne pas utiliser tout simplement la méthode Copy() de DataTable?
|
|
mardi 21 octobre 2008 à 11:13:05 |
Re : remplir un dataset avec une valeur null

Amelie_29
|
NomDataset.Tables[ "NomMatable" ].Columns[ "NomColonne" ].AllowDBNull = true ;
Si un champ de ta table est null : dans le dataset la valeur du champ sera égale à Dbnull.Value
|
|
mardi 21 octobre 2008 à 11:46:32 |
Re : remplir un dataset avec une valeur null

bellak
|
bonjour , pourquoi ne pas utiliser tout simplement la méthode Copy() de DataTable? j'ai deja essayé de mettre DataTable.Merge() mais le probleme et si vous voyez je collecte les enregistrements a partir de la deuxieme colonne , et meme je collecte que certains Rows . et pour : NomDataset.Tables["NomMatable"].Columns[ "NomColonne"].AllowDBNull = true; cette propriete indique si la valeur null est autorisee ou non et par defaut c'est true , donc inutile . pour le moment la meilleure solution c'est les DataSet typés .
|
|
mardi 21 octobre 2008 à 14:56:23 |
Re : remplir un dataset avec une valeur null

bellak
|
Réponse acceptée !
Re , j'ai trouvé une solution sans passer par les DataSet typés mais je ne sais pas si c'est la bonne et la propre la solution : for (int k = 0; k < DTSetAux.Tables["DevisAux"].Rows.Count; k++) { DataRow Row = dtSet.AuxDetail.NewRow(); for (int l = 0; l < 5; l++) { Row[l] = DTSetAux.Tables["DevisAux"].Rows[k][l + 1]; } dtSet.AuxDetail.Rows.Add(Row); } merci .
|
|
Cette discussion est classée dans : rows, tables, tostring, dtsetaux, devisaux
Répondre à ce message
Sujets en rapport avec ce message
transac SQL [ par philo71 ]
Bonjour,Je suis entrain de développer une application transac SQL sur sql serveur en C#,apres l'appel d'un proc stock (procédure stockée) , le program
Lire et Affichage des données dans un FRM [ par drcmomo ]
Bonjour tout le monde , J'ai un petit gros probléme(mdr)J'ia cette fonction dans mon FRM Qui me permet en cliquant sur mon Lookup d'afficher toutes le
problème avec dataGridView vers textbox, combobox [ par suethi75 ]
Bonsoir tout le monde, Voila, j'ai fais un formulaire dans lequel j'ai un dataBridView, je remonte dans le dataBridView des données de la base, ensuit
Chemin d'accé d'un document (PDF, Word, Image,..) [ par Azouzia ]
Salut à tous[^^happy13], Je vous décrit le principe de mon application intitulé gestion documentaire; Je vient de créer une arboresence qui contient d
listbox et connexion DB [ par waspy59 ]
bonjour a tous, Voila, j'ai une appli dans laquelle une listbox liste tout les elements d'un champ d'une datatable. jusque la ca fonctionne tous les
La référence d'objet n'est pas définie à une instance d'un objet. [ par fatine88 ]
salut, je developpe avec l'asp.net (c#), j'ai plusieurs dropdownlist dans mon code et lorsque j'utilise "String EvaluéMat = DropDownList13.SelectedIte
c# lire le contenu des tables d'une base de données mdb [ par naoual68 ]
J'ai une base de données avec l'extension mbd (societe.mdb) qui se compose de plusieurs tables (clients, fournisseurs...), je veux lire les données de
Gridview + checkbox ? [ par yosboss ]
Bonjour, alors je suis entrain de développer une application ASP.NET en C#.. je veux afficher un GridView lié sqlDataSource en ajoutant un colonne d
Generateur d'instruction database [ par romain60112 ]
Bonjours à tous, Je suis sur un projet C# 'Application Windows' où je dispose d'une database (DB) avec quelques tables (3). Je souhaite mettre à jour
prb listview avec condition [ par fl2010 ]
bonjour, comment remplir une listview dynamiquement. je veux remplir une ligne d'une listview a partir d'une base de donnée et qui respect une conditi
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|