Niouzes.org  

Précédent   Niouzes.org > Forum > Newsgroup microsoft.public.fr.* 3 Forum > Newsgroup microsoft.public.fr.dotnet.vb
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus



Réponse

 

LinkBack Outils de la discussion Modes d'affichage
  #1 (permalink)  
Vieux 02/09/2008, 15h11
Gilbert Tordeur
 
Messages: n/a
Par défaut Message d'erreur de LINQ to SQL

Bonjour,

Lorsque je tente d'exécuter une instruction Linq pour lire une ligne d'une
table SQL, j'obtiens le message d'erreur suivant à l'exécution de
l'instruction "If LaRegle.Count < 1" :
InvalidOperationException : Un DataReader associé à cette commande est déjà
ouvert. Il doit d'abord être fermé.

Je ne comprends pas ce que ce message signifie. Voici mon code ci-dessous.
Quelqu'un a-t-il une idée ?

Merci d'avance,
Gilbert.

Private Function DeterminerRegleCautionBancaire(ByVal mntCautionBancaire As
Decimal _
, ByVal durCautionBancaire As Integer) As Boolean
DeterminerRegleCautionBancaire = False
Dim ContexteRegle As New
DoaReglesCautionBancaireDataContext(ObjSessionDive rs.OpenFinance)
Dim LaRegle = From Regle In ContexteRegle.DoaReglesCautionBancaire _
Where ( _
(Regle.RebMntCautionBancaire >= mntCautionBancaire) _
And (regle.RebDurCautionBancaire >= durCautionBancaire) _
) _
Order By Regle.RebMntCautionBancaire Ascending _
, Regle.RebDurCautionBancaire Ascending _
Take 1

If LaRegle.Count < 1 Then
Alert.Show(String.Format(Msg018, "de la caution bancaire"))
Exit Function
End If

NumRegleCautionBancaire = LaRegle.First.RebNumRegle
LaRegle = Nothing
ContexteRegle = Nothing
DeterminerRegleCautionBancaire = True
End Function


Réponse avec citation
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Niouzes.org
Standard Sponsored Links

  #2 (permalink)  
Vieux 03/09/2008, 12h10
Patrice
 
Messages: n/a
Par défaut Re: Message d'erreur de LINQ to SQL

Bonjour,

A priori on tente plusieurs lectures en même temps sur une même connexion.

Dès la première exécution ? Qu'est ce que cela donne avec un
ContexteRegle.Dispose (bien placé pour qu'il soit toujours exécuté) ?

Cela n'a rien à voir mais les noms me paraissent un peu étranges (le nom du
contexte est le même que le nom de la table exposée par ce contexte ?)

--
Patrice

"Gilbert Tordeur" <gilbert.tordeur***orange.fr> a écrit dans le message de
groupe de discussion : uqf0YXQDJHA.1228***TK2MSFTNGP02.phx.gbl...
> Bonjour,
>
> Lorsque je tente d'exécuter une instruction Linq pour lire une ligne d'une
> table SQL, j'obtiens le message d'erreur suivant à l'exécution de
> l'instruction "If LaRegle.Count < 1" :
> InvalidOperationException : Un DataReader associé à cette commande est
> déjà ouvert. Il doit d'abord être fermé.
>
> Je ne comprends pas ce que ce message signifie. Voici mon code ci-dessous.
> Quelqu'un a-t-il une idée ?
>
> Merci d'avance,
> Gilbert.
>
> Private Function DeterminerRegleCautionBancaire(ByVal mntCautionBancaire
> As Decimal _
> , ByVal durCautionBancaire As Integer) As Boolean
> DeterminerRegleCautionBancaire = False
> Dim ContexteRegle As New
> DoaReglesCautionBancaireDataContext(ObjSessionDive rs.OpenFinance)
> Dim LaRegle = From Regle In ContexteRegle.DoaReglesCautionBancaire _
> Where ( _
> (Regle.RebMntCautionBancaire >= mntCautionBancaire) _
> And (regle.RebDurCautionBancaire >= durCautionBancaire) _
> ) _
> Order By Regle.RebMntCautionBancaire Ascending _
> , Regle.RebDurCautionBancaire Ascending _
> Take 1
>
> If LaRegle.Count < 1 Then
> Alert.Show(String.Format(Msg018, "de la caution bancaire"))
> Exit Function
> End If
>
> NumRegleCautionBancaire = LaRegle.First.RebNumRegle
> LaRegle = Nothing
> ContexteRegle = Nothing
> DeterminerRegleCautionBancaire = True
> End Function
>


Réponse avec citation
  #3 (permalink)  
Vieux 03/09/2008, 17h41
Gilbert Tordeur
 
Messages: n/a
Par défaut Re: Message d'erreur de LINQ to SQL

Merci Patrice,
En fait, un DataReader était bien ouvert sur la même connexion. J'ai été
induit en erreur par "associé à cette commande".
En ce qui concerne les noms : le nom du contexte comporte le mot Contexte,
le nom de la table ne le contient pas. Ils sont donc différents. Qu'est-ce
qui te chiffonne ?
Gilbert

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
C8B5023B-2146-4CE0-9DFE-18F703514D80***microsoft.com...
> Bonjour,
>
> A priori on tente plusieurs lectures en même temps sur une même connexion.
>
> Dès la première exécution ? Qu'est ce que cela donne avec un
> ContexteRegle.Dispose (bien placé pour qu'il soit toujours exécuté) ?
>
> Cela n'a rien à voir mais les noms me paraissent un peu étranges (le nom
> du contexte est le même que le nom de la table exposée par ce contexte ?)
>
> --
> Patrice
>
> "Gilbert Tordeur" <gilbert.tordeur***orange.fr> a écrit dans le message de
> groupe de discussion : uqf0YXQDJHA.1228***TK2MSFTNGP02.phx.gbl...
>> Bonjour,
>>
>> Lorsque je tente d'exécuter une instruction Linq pour lire une ligne
>> d'une table SQL, j'obtiens le message d'erreur suivant à l'exécution de
>> l'instruction "If LaRegle.Count < 1" :
>> InvalidOperationException : Un DataReader associé à cette commande est
>> déjà ouvert. Il doit d'abord être fermé.
>>
>> Je ne comprends pas ce que ce message signifie. Voici mon code
>> ci-dessous. Quelqu'un a-t-il une idée ?
>>
>> Merci d'avance,
>> Gilbert.
>>
>> Private Function DeterminerRegleCautionBancaire(ByVal mntCautionBancaire
>> As Decimal _
>> , ByVal durCautionBancaire As Integer) As Boolean
>> DeterminerRegleCautionBancaire = False
>> Dim ContexteRegle As New
>> DoaReglesCautionBancaireDataContext(ObjSessionDive rs.OpenFinance)
>> Dim LaRegle = From Regle In ContexteRegle.DoaReglesCautionBancaire _
>> Where ( _
>> (Regle.RebMntCautionBancaire >= mntCautionBancaire) _
>> And (regle.RebDurCautionBancaire >= durCautionBancaire) _
>> ) _
>> Order By Regle.RebMntCautionBancaire Ascending _
>> , Regle.RebDurCautionBancaire Ascending _
>> Take 1
>>
>> If LaRegle.Count < 1 Then
>> Alert.Show(String.Format(Msg018, "de la caution bancaire"))
>> Exit Function
>> End If
>>
>> NumRegleCautionBancaire = LaRegle.First.RebNumRegle
>> LaRegle = Nothing
>> ContexteRegle = Nothing
>> DeterminerRegleCautionBancaire = True
>> End Function
>>

>



Réponse avec citation
  #4 (permalink)  
Vieux 03/09/2008, 18h58
Patrice
 
Messages: n/a
Par défaut Re: Message d'erreur de LINQ to SQL

> En ce qui concerne les noms : le nom du contexte comporte le mot Contexte,
> le nom de la table ne le contient pas. Ils sont donc différents. Qu'est-ce
> qui te chiffonne ?
> Gilbert


Si tu utilises les noms par défaut cela voudrait dire que le nom de la table
présente dans ta base est le même que le nom de ta base. Ce n'est pas
spécialement interdit mais plutôt inhabituel d'autant plus que le nom de
contexte semble assez spécifique (je me serais attendu à qq chose de plus
général style GestionFinancièreDataContext).

Pour expliciter ma pensée je me demandais, si tu ne créais pas un contexte
par Table plutôt qu'un contexte par Base.

--
Patrice


Réponse avec citation
  #5 (permalink)  
Vieux 04/09/2008, 07h40
Gilbert Tordeur
 
Messages: n/a
Par défaut Re: Message d'erreur de LINQ to SQL

Patrice,

Oui je crée un contexte par Table plutôt qu'un contexte par Base. En fait ça
fait 3-4 jours que je touche à Linq et je suis donc super débutant en ce
domaine. Tu veux dire qu'il est préférable de créer un seul contexte par
base, auquel se réfèreront toutes mes requêtes Linq ?

Tu connais un bon tutoriel ?

Gilbert

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
0CC97065-2D85-4B70-B9F8-3F6883118146***microsoft.com...
>> En ce qui concerne les noms : le nom du contexte comporte le mot
>> Contexte, le nom de la table ne le contient pas. Ils sont donc
>> différents. Qu'est-ce qui te chiffonne ?
>> Gilbert

>
> Si tu utilises les noms par défaut cela voudrait dire que le nom de la
> table présente dans ta base est le même que le nom de ta base. Ce n'est
> pas spécialement interdit mais plutôt inhabituel d'autant plus que le nom
> de contexte semble assez spécifique (je me serais attendu à qq chose de
> plus général style GestionFinancièreDataContext).
>
> Pour expliciter ma pensée je me demandais, si tu ne créais pas un contexte
> par Table plutôt qu'un contexte par Base.
>
> --
> Patrice
>



Réponse avec citation
 
Réponse
Tags: , , ,



Outils de la discussion
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui



Fuseau horaire GMT. Il est actuellement 23h49.

Italiano - German - English - Español


Édité par : vBulletin® version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc. Tous droits réservés.
Version française #13 par l'association vBulletin francophone


Politique - Droit - Philosophie - Football - Medicine - Française - Bricolage - Photo - Mac Os X - Divers - Physique - Jardinage
Mecanique - Moto - Photographie - Rail - Route - Aviation - Cinema - Linux - Psychanalyse - Finance - Enigmes - Rugby
Environnement - Histoire - Programmes TV - Education - Travail - Voyages - Windows - Immobilier - Cuisine
Windows XP - Excel - Word - Outlook - Access - Internet Explorer - Office - Vista

Page generated in 0,36607 seconds with 10 queries