OVH Cloud OVH Cloud

Xml et base de données

13 réponses
Avatar
David CALDERINI
Bonjour,

Je butte depuis un moment sur ce probl=E8me.

J'ai un fichier xml,
Je souhaite incerer son contenu dans une table qui=20
contient trois columns.

Quelles sont les meilleurs fa=E7ons de faire?

Merci d'avance.

3 réponses

1 2
Avatar
Paul Bacelar
Et avec "SELECT * FROM localite" ?

--
Paul Bacelar

"David CALDERINI" wrote in
message news:
Encore une auto réponse je touche presque qu'au but,

Voici maintenant mon code qui prend les données d'un fichier xml et qui


les
enregistre (du moin qui essaye) dans une base de données.

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@ofd.FileName);

ds = new DataSet();
XmlNodeReader xnr = new XmlNodeReader(xmlDoc);
ds.ReadXml(xnr);
dataGrid2.DataSource = ds.Tables[2];

// Requete
string sSQL = "SELECT id,cp,nom FROM localite";
dataAdapter2 = new SQLBaseDataAdapter(sSQL, cnx);
//dataAdapter2.FillSchema(ds,SchemaType.Source,"comenaos");
dataAdapter2.Fill(ds);
dataAdapter2.Update(ds.Tables[2]);


Maintenant le message d'erreur est :

Une exception non gérée du type 'System.InvalidOperationException' s'est
produite dans system.data.dll

Informations supplémentaires : Update requiert un InsertCommand valide


lors
du passage de la collection DataRow avec de nouvelles lignes.

Je sens qu'il ne manque pas grand chose pour réussir.
Merci d'avance...





"David CALDERINI" a écrit :

> Bonjour,
>
> Je butte depuis un moment sur ce problème.
>
> J'ai un fichier xml,
> Je souhaite incerer son contenu dans une table qui
> contient trois columns.
>
> Quelles sont les meilleurs façons de faire?
>
> Merci d'avance.
>
>
>


Avatar
David CALDERINI
J'ai l'erreur

Une exception non gérée du type 'System.InvalidOperationException' s'est
produite dans system.data.dll

Informations supplémentaires : Update requiert un InsertCommand valide lors
du passage de la collection DataRow avec de nouvelles lignes.





"Paul Bacelar" a écrit :

Et avec "SELECT * FROM localite" ?

--
Paul Bacelar

"David CALDERINI" wrote in
message news:
> Encore une auto réponse je touche presque qu'au but,
>
> Voici maintenant mon code qui prend les données d'un fichier xml et qui
les
> enregistre (du moin qui essaye) dans une base de données.
>
> XmlDocument xmlDoc = new XmlDocument();
> xmlDoc.Load(@ofd.FileName);
>
> ds = new DataSet();
> XmlNodeReader xnr = new XmlNodeReader(xmlDoc);
> ds.ReadXml(xnr);
> dataGrid2.DataSource = ds.Tables[2];
>
> // Requete
> string sSQL = "SELECT id,cp,nom FROM localite";
> dataAdapter2 = new SQLBaseDataAdapter(sSQL, cnx);
> //dataAdapter2.FillSchema(ds,SchemaType.Source,"comenaos");
> dataAdapter2.Fill(ds);
> dataAdapter2.Update(ds.Tables[2]);
>
>
> Maintenant le message d'erreur est :
>
> Une exception non gérée du type 'System.InvalidOperationException' s'est
> produite dans system.data.dll
>
> Informations supplémentaires : Update requiert un InsertCommand valide
lors
> du passage de la collection DataRow avec de nouvelles lignes.
>
> Je sens qu'il ne manque pas grand chose pour réussir.
> Merci d'avance...
>
>
>
>
>
> "David CALDERINI" a écrit :
>
> > Bonjour,
> >
> > Je butte depuis un moment sur ce problème.
> >
> > J'ai un fichier xml,
> > Je souhaite incerer son contenu dans une table qui
> > contient trois columns.
> >
> > Quelles sont les meilleurs façons de faire?
> >
> > Merci d'avance.
> >
> >
> >





Avatar
Paul Bacelar
La commande qui sert à insérer de nouveaux éléments n'est pas connue par le
DataAdapter, c'est la propriété UpdateCommand du SqlDataAdapter.

Je pense que la commande Select est un peu trop compliqué pour que le
DataAdapter en déduise les commandes d'update : UpdateCommand, DeleteCommand
et InsertCommand. D'où ma précédente suggestion de la simplifier par un * a
la place des champs.

Vous pouvez mettre vous même les instructions SQL qui vont bien dans les
trois propriétés des commande d'update pour que le DataAdapter s'y retrouve.
--
Paul Bacelar


"David CALDERINI" wrote in
message news:
J'ai l'erreur

Une exception non gérée du type 'System.InvalidOperationException' s'est
produite dans system.data.dll

Informations supplémentaires : Update requiert un InsertCommand valide


lors
du passage de la collection DataRow avec de nouvelles lignes.





"Paul Bacelar" a écrit :

> Et avec "SELECT * FROM localite" ?
>
> --
> Paul Bacelar
>
> "David CALDERINI" wrote in
> message news:
> > Encore une auto réponse je touche presque qu'au but,
> >
> > Voici maintenant mon code qui prend les données d'un fichier xml et


qui
> les
> > enregistre (du moin qui essaye) dans une base de données.
> >
> > XmlDocument xmlDoc = new XmlDocument();
> > xmlDoc.Load(@ofd.FileName);
> >
> > ds = new DataSet();
> > XmlNodeReader xnr = new XmlNodeReader(xmlDoc);
> > ds.ReadXml(xnr);
> > dataGrid2.DataSource = ds.Tables[2];
> >
> > // Requete
> > string sSQL = "SELECT id,cp,nom FROM localite";
> > dataAdapter2 = new SQLBaseDataAdapter(sSQL, cnx);
> > //dataAdapter2.FillSchema(ds,SchemaType.Source,"comenaos");
> > dataAdapter2.Fill(ds);
> > dataAdapter2.Update(ds.Tables[2]);
> >
> >
> > Maintenant le message d'erreur est :
> >
> > Une exception non gérée du type 'System.InvalidOperationException'


s'est
> > produite dans system.data.dll
> >
> > Informations supplémentaires : Update requiert un InsertCommand valide
> lors
> > du passage de la collection DataRow avec de nouvelles lignes.
> >
> > Je sens qu'il ne manque pas grand chose pour réussir.
> > Merci d'avance...
> >
> >
> >
> >
> >
> > "David CALDERINI" a écrit :
> >
> > > Bonjour,
> > >
> > > Je butte depuis un moment sur ce problème.
> > >
> > > J'ai un fichier xml,
> > > Je souhaite incerer son contenu dans une table qui
> > > contient trois columns.
> > >
> > > Quelles sont les meilleurs façons de faire?
> > >
> > > Merci d'avance.
> > >
> > >
> > >
>
>
>


1 2