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
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
checkedlistbox [ par manelfeki ]
Salut, j'aie un petit probleme: j'aie un datagirdview qui contien deux colonnes un pour le matrecule personne et l'autre pour la liste des vue qu"il p
datagridview [ par manelfeki ]
salut, j'aie un probleme apres l'execution de cette code : private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
Mon code est trop lent ! [ par alexbesn ]
Bonjour à tous. J'ai écris du code mais il est beaucoup trop lent, j'aurai besoin de l'avis d'experts ! Je souhaiterai écrire un programme qui vérif
Threading progress bar traitement [ par kmtaz ]
Bonjour, Dans mon programme on peut consulter des tables sql grâce à un bouton. Comme certaines tables contiennent énormément de lignes (+700 000), l
Connaitre le numéro de la ligne sélectionnée (Datagridview / Dataset) [ par alexbesn ]
Bonjour.J'ai un DataGridview que je remplis avec mon Dataset. Ce que je cherche c'est supprimer la ligne que l'utilisateur va sélectionner dans le dat
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|