|
|
Office
Démarré par tectec25 à 07-19-2006 12:22. Le sujet a 24 réponse(s).
 
 
|
|
Sort Posts:
|
|
|
|
07-19-2006, 12:22
|
tectec25
Rejoint : 07-03-2006
Messages : 24
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
|
Salut!
J'ai réussi à afficher les données dans un gridview en passant par le dataset, en fait j'ai juste créé un nouveau fichier excel, l'autre devait etre deffectueux! ![Smile [:)]](/emoticons/emotion-1.gif)
Mais par contre j'arrive toujours pas a inserer les données dans la base! J'ai une autre question : est ce qu'il faut que je créé une nouvelle chaine de connexion pour pouvoir ouvrir une connexion avec la base?
Merci
|
|
|
|
Adresse IP : Connecté
|
Rapport
|
|
|
|
07-19-2006, 18:34
|
okavango
Rejoint : 06-23-2006
Messages : 409
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
Salut !
Euh ... tu ne devrais même pas poser cette question !
Bien sûr que oui !
La première chaine était utilisée pour importer les données depuis
"exclusivement" excel vers un dataset il me semble. Mais pour pouvoir
les insérer dans ta base de données, il faudra que tu crées une autre
chaine de connexion spécifique !
Je te recommande même d'utiliser une chaine de connexion avec provider si tu utilises MS SQL Server !
Voilà
Okavango.
|
|
|
|
Adresse IP : Connecté
|
Rapport
|
|
|
|
07-19-2006, 19:02
|
tectec25
Rejoint : 07-03-2006
Messages : 24
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
|
Salut!
Merci pour la réponse! C'est vrai que ma question n'etait pas tres subtile!
Oui c'est une base sql mais c'est une base qui a été créée directement par visualstudio lorsque j'ai créé des utilisateurs et des roles pour mon application (c'et un .mdf) et j'ai donc créé une nouvelle table que je veux remplir a l'aide des données du fichier excel! Je sais pas si c'est clair..![Smile [:)]](/emoticons/emotion-1.gif)
Voila la chaine de connexion que j'utilise, je sais pas si elle est bonne:
//string csTest = "DataSource=./SQLEXPRESS;AttachDbFilename=C:/PilotePlateforme/App_Data/ASPNETDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
et j'obtiens cette erreur:
Une erreur s'est produite lors de l'établissement d'une connexion au serveur. Lors de la connexion à SQL Server 2005, cet échec peut être dû au fait que les paramètres par défaut de SQL Server n'autorisent pas les connexions à distance. (provider: Fournisseur de canaux nommés, error: 40 - Impossible d'ouvrir une connexion à SQL Server)
Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
Détails de l'exception: System.Data.SqlClient.SqlException: Une erreur s'est produite lors de l'établissement d'une connexion au serveur. Lors de la connexion à SQL Server 2005, cet échec peut être dû au fait que les paramètres par défaut de SQL Server n'autorisent pas les connexions à distance. (provider: Fournisseur de canaux nommés, error: 40 - Impossible d'ouvrir une connexion à SQL Server)
Erreur source:
Ligne 45 : oAd.SelectCommand = oCmd;
Ligne 46 :
Ligne 47 : conn.Open();
Ligne 48 :
Ligne 49 : DataTable Table1 = new DataTable(); |
Donc je sais pas si ça vient de la chaine ou d'autre chose! (J'ai vérifié ds les parametres de sql server : l'option canaux nommés est activée)
Merci pour ton aide, c'est vraiment gentil
|
|
|
|
Adresse IP : Connecté
|
Rapport
|
|
|
|
07-19-2006, 19:27
|
okavango
Rejoint : 06-23-2006
Messages : 409
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
Alors dans ce cas essaie de passer par le fichier web.config en y mettant un truc du genre :
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<!--identity impersonate="true" userName="vanferrak" password="dennanoto"/-->
<compilation defaultLanguage="c#" debug="true"/>
<customErrors mode="Off"/>
</system.web>
<appSettings>
<!--add key="_dbConnectionString" value="Driver={SQL
Server}; Server=(local); Database=myDatabse; UID=toto; PWD=titi"
/-->
<add key="_taConnectionString"
value="server=(local);uid=toto;pwd=titi" />
</appSettings>
</configuration>
Et tu accèdes à la chaine de connexion en écrivant :
sCnx = new SqlConnection(ConfigurationSettings.AppSettings["_taConnectionString"]);
Voila.
Okavango.
PS.: Décidément, il ne t'arrive que des problèmes dans ton code ! Mais
ça arrive même moi, il arrive que je passe des heures à chercher pour
quoi telle ou telle ligne ne marche pas ! Et souvent ce sont des fautes
d'inattention qui se résolvent en quelques lignes : quand on passe de
vb à c#, on oublie par exemple que le séparateur d'instructions c'est
le point-virgule en c# ... enfin tu vois où je veux en venir ? Ensuite
ça te fout un bazar pas possible !!!!
|
|
|
|
Adresse IP : Connecté
|
Rapport
|
|
|
|
07-20-2006, 12:58
|
tectec25
Rejoint : 07-03-2006
Messages : 24
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
|
Salut!
Rien à faire, j'ai toujours la meme erreur! Je me demande si ça serait pas un pb de firewall ou de proxy..? Je ne peux meme pas modifier les regles, je n'ai pas les droits!
Si tu as une idée..
A+
Merci!
|
|
|
|
Adresse IP : Connecté
|
Rapport
|
|
|
|
07-21-2006, 16:56
|
tectec25
Rejoint : 07-03-2006
Messages : 24
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
|
Salut!
J'ai réussi apperement a me connecter a la base! (j'ai plus l'erreur..) en fait j'ai juste modifier un peu la chaine de connexion!
Mais! (car il ya toujours un "mais" en ce moment) j'arrive toujours pas a remplir la table!
Ya pas d'erreur mais la table reste vide...
Apres avoir ouvert la connexion:
conn.open();
J'utilise la methode fill() que tu m'avais conseillé pour remplir la table:
oAd.Fill(new DataTable("Table1"));
Par contre la methode fill() marche bien lorsque j'affiche les données dans un gridview (en passant par le dataset).
Donc je sais pas si j'utilise la bonne méthode fill(..)
Merci encore pour ton aide!
|
|
|
|
Adresse IP : Connecté
|
Rapport
|
|
|
|
07-21-2006, 20:13
|
okavango
Rejoint : 06-23-2006
Messages : 409
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
Salut !
Ah ! Tu savais que tu es en train de manipuler des données stockées en
mémoire seulement ! Eh oui ... c'est le role du dataset ! Faire des
modifs dans ce dernier n'affecte en rien ta base de données. Dataset
possède sa propre collection de Table en mémoire à laquelle tu peux
ajouter autant de table que tu veux sans pour autant avoir les tables
que tu ajoutes dans ta base de données. Tout ce passe en mémoire en
faite.
Maintenant que tu peux te connecter à ta base de données (enfin
... ), tu vas insérer les données de ta dataset
dans une vraie table de ta base. Pour ce faire tu disposes déjà de
l'objet OleDBAdapter avec lequel tu vas établir une connexion à la base
! Et regarde parmi ses méthodes, tu as la méthode Update(DataSet,
DataTable). Mais avant il ya deux ou trois manip à faire !
En somme ton code ressemblera à peu près à ça :
DataSet oDS = // ... ici le dataset que tu as créé avant, et que tu as utilisé pour ton gridview
OleDbConnection connection = new OleDbConnection("<taChaineDeConnexion>");
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand("<taRequete, ex : SELECT * FROM taTableDansTaBase>", connection);
// MSDN : OleDBCommendBuilder
Génère automatiquement des commandes de table simple utilisées pour harmoniser les modifications apportées à DataSet avec la base de données associée. Cette classe ne peut pas être héritée.
OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);
connection.Open();
adapter.Fill((DataSet)oDS);
adapter.Update(oDS, "<NomDeLaTaTableARemplir>");
Voila
A mon avis, si je puis me permettre, ça devrait aller !
Okavango
PS. :
On a résolu ensemble ton problème en à peu près 16 messages ! Eh ben .... !!!!
|
|
|
|
Adresse IP : Connecté
|
Rapport
|
|
|
|
07-24-2006, 16:58
|
tectec25
Rejoint : 07-03-2006
Messages : 24
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
|
Salut!
Merci pour ta réponse bien détaillée! C'est vraiment gentil..
Je l'ai adaptée a mon prog pcq moi j'utilise une sqlconnection! mais helas mon pb n'est tjours pas résolu..![Sad [:(]](/emoticons/emotion-6.gif)
J'ai l'impression qui ne retrouve pas la table dans laquelle je veux insérer..
J'obtiens cette erreur :
Impossible pour Update de trouver TableMapping['Table1'] ou DataTable 'Table1'.
Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
Détails de l'exception: System.InvalidOperationException: Impossible pour Update de trouver TableMapping['Table1'] ou DataTable 'Table1'.
Erreur source:
Ligne 65 : DataSet oDs = new DataSet("ExcelDataset");
Ligne 66 : oAd.Fill(oDs);
Ligne 67 : adapter.Update(oDs,"Table1");
Ligne 68 : GridView1.DataSource = oDs;
Ligne 69 : GridView1.DataBind(); | Fichier source : c:\PilotePlateforme\ConsulterInformations.aspx.cs Ligne : 67
Trace de la pile:
[InvalidOperationException: Impossible pour Update de trouver TableMapping['Table1'] ou DataTable 'Table1'.]
System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable) +290
ConsulterInformations.Page_Load(Object sender, EventArgs e) in c:\PilotePlateforme\ConsulterInformations.aspx.cs:67
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +13
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +45
System.Web.UI.Control.OnLoad(EventArgs e) +80
System.Web.UI.Control.LoadRecursive() +49
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3745
|
Je sais pas a quoi c'est du! Pourtant la connexion est bien ouverte..
Merci encore!
|
|
|
|
Adresse IP : Connecté
|
Rapport
|
|
|
|
07-24-2006, 18:21
|
okavango
Rejoint : 06-23-2006
Messages : 409
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
Salut !
Je suis content que tu aies pu te connecter à ta base de données, en effet il était temps !
Cependant à ce que je vois les petits soucis n'arrêtent pas ! ![Embarrassed [:$]](/emoticons/emotion-10.gif)
Eh oui le travail de programmeur devient un peu dur et lourd quand on n'a que des bugs à chaque fois !
Qu'est-ce que tu aimerais bien que tout se passe bien non ?
Moi aussi, j'aime quand tout se déroule bien !
Bon ... concernant ton bug, effectue les changements suivants :
Au lieu d'utiliser les classes :
OleDBConnection
OleDBAdapter
OleDBCommandBuilder
Mets plutôt (respectivement à la place) :
SqlConnection
SqlDataAdapter
SqlCommandBuilder
Et veille à ce que tu crées bien un objet SqlCommandBuilder sinon l'update échoue ! On verra bien si ça cloche encore !!!
Désolé mais je ne pensais pas que tu utiliserais un objet SqlConnection pour ta connexion, car ça change le code !
Okavango
|
|
|
|
Adresse IP : Connecté
|
Rapport
|
|
|
|
07-25-2006, 14:53
|
tectec25
Rejoint : 07-03-2006
Messages : 24
|
Re : importer des données a partir d'un ficher excel
|
|
|
|
|
|
Salut!
J'avais modifié le code hier! en remplaçant tout ce qu'il fallait! Mais ça marche pas quand meme!
Je n'arrive vraiment pas a voir ce que ça peut etre..!? Je sais pas si t'as une autre idée?
C'est clair que j'adore quand tout marche du premier coup! Mais la en ce moment c'est vraiment pas le cas ![Smile [:)]](/emoticons/emotion-1.gif)
Merci beaucoup
|
|
|
|
Adresse IP : Connecté
|
Rapport
|
|
|
|
|
|
Page 2 sur 3 [25 au total]
|
« 1 2 3 » |
|
|
|
Labo-dotnet » Programmation .... » Office » Re : importer des données a partir d'un ficher excel
|
|
|
|