begin process at 2010 02 09 16:32:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Base de données

 > 

ADO.NET

 > 

Ouvrir mon DataReader???


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ouvrir mon DataReader???

vendredi 3 juillet 2009 à 23:20:54 | Ouvrir mon DataReader???

inoussyago

vendredi 3 juillet 2009 à 23:25:31 | Re : Ouvrir mon DataReader???

inoussyago

Salut, Voila j'ai un problème avec mon script, Voici une methode de ma classe AccesData: cette methode me retourne un datareader. public System.Data.Common.DbDataReader ExecuteReader(String CommandText, ref System.Data.Common.DbConnection conn) { System.Data.Common.DbCommand oDbCommand; System.Data.Common.DbDataReader oDbDataReader; try { conn.Open(); oDbCommand = this.CreateCommand(CommandText, conn, System.Data.CommandType.Text); oDbDataReader = oDbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection); } catch (Exception ex) { throw ex; } finally { conn.Close(); } return oDbDataReader; } Voici le code et voici mon Main static void Main(string[] args) { AccesData obj; obj = AccesData.GetInstance(); System.Data.Common.DbConnection conn; conn = obj.CreateConnection("System.Data.SqlClient", "initial catalog=data; data source=.;integrated security=true;"); System.Data.Common.DbDataReader Da ; Da = obj.ExecuteReader("select * from data",ref conn); conn.Open(); Console.Write("Le nombre de ligne changer est {0}", Da.Read()); while (Da.Read()) { Console.WriteLine("de numero {0} et de nom {1}", Da["id"], Da["name"]); } conn.Close(); Console.ReadLine(); } voici les detail de mon erreur L'exception System.InvalidOperationException n'a pas été gérée Message="Tentative d'appel de Read non valide lorsque le lecteur est fermé." Source="System.Data" StackTrace: à System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout) à System.Data.SqlClient.SqlDataReader.Read() à test.Program.Main(String[] args) dans D:\Boss\Script\projet été\C# - 2SF\test1\test1\Program.cs:ligne 173 à System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() à System.Threading.ThreadHelper.ThreadStart_Context(Object state) à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) à System.Threading.ThreadHelper.ThreadStart() InnerException: c'est quoi le Lecteur es ce le dataset . Si oui comment l'ouvrir , je n'ai rien trouvé sur le net
samedi 4 juillet 2009 à 07:46:49 | Re : Ouvrir mon DataReader???

Robert33

Membre Club
Bonjour,

en fait c'est la connexion qui est fermée lorsque tu essayes de lire le reader.
La méthode Execute reader ne charge pas le DataReader completement, mais garde une sorte de curseur sur la connexion, le fait de fermer la connexion va fermer le datareader.

comme tu positionnes "CommandBehavior.CloseConnection" sur l'execution, la connexion sera fermée lorsque tu fermeras le reader.
enleve donc "conn.Close()" de ton finally.

autre remarques:
-inutile de mettre un "ref" devant le parametre connexion, les objets sont par défaut passés par référence.
-enleve le conn.open avant de lire le reader, car la connexion est déjà ouverte dans la methode.
-la methode "Read" du data reader ne donne pas le nombre de ligne, mais fait avancer le pointeur de lecture
-à la fin de la lecture, ferme le datareader, la connexion va se fermer avec.

je ne sais pas ce que tu veux faire au final, mais si ta methode ExecuteReader se borne à faire l'ouverture de la connexion et l'execution de la commande, elle est inutile et rend le code complexe.

C# is amazing, enjoy it!


Cette discussion est classée dans : ouvrir, datareader


Répondre à ce message

Sujets en rapport avec ce message

ouvrir fichier [ par FaustVII ] je souhaiterai ouvrir un fichier a partir de mon programme (par exemple avec un bouton)j ai tenter d' utiliser file.open mais sans successi quelqu un Ouvrir un Winform [ par jdaviaud ] Comment fait on pour ouvrir depuis un winform principal ( Form1.cs ) , un autre Winform ( Form2.cs ) d'apres le clic d'un bouton ? car j'ai essayé les openfiledialog [ par yho ] bonjour,j'essaye d'utiliser la classe openfiledialog pour ouvrir une fenetre afin de choisir un fichier dans une liste ,voici mon code OpenFileDialog une fenêtre dans un form [ par jagxx ] Bonjour,J'aimerais savoir comment faire pour ouvrir une nouvelle fenêtre dans un form existant. Par exemple, pouvoir ouvrir deux fichiers en même temp ouvrir powerpoint [ par Tommy666 ] Salut,Comment faire pour ouvrir un document POWERPOINT depuis dotnet en c# ??? URGENT !!! Merci Ouvrir une nouvelle fenetre [ par kaiwoo ] Comment fait on pour ouvrir une nouvelle fenetre.... Par exemple : quan dje clique dans mon menu je voudrais que lorsque que je cliques sur l'une des ouvrir notepad [ par mathnel ] Je developpe un site en asp.net et je souhaiteraisouvrir le notepad. Comment faire? Comment ouvrir un fichier hlp en C# [ par PascalCmoa ] PascalCmoa email: PascalCmoaBonjour à tous <img src=/imgs Ouvrir un programme en plein écran [ par Cameleon69 ] Je sais récupérer ma résolution d'écran, mais je voudrais forcer l'ouverture d'un programme externe (fichier d'aide, chm) en plein écran.j'y arrive bi ouvrir une nouvelle form à la place d'une autre [ par estebantonio ] slt j'aimerais savoir comment, dans ma form menu, si je clique un element du menu, je peux ouvrir la form associee mais à la place de celle du menu??m


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,234 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales