Problème de lecture d'une base oracle

Résolu
Musiol Messages postés 2 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 2 juillet 2008 - 2 juil. 2008 à 13:54
Musiol Messages postés 2 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 2 juillet 2008 - 2 juil. 2008 à 14:46
Bonjour,

Actuellement en stage, je suis en train de développer une application 3tiers en VB.Net 2005/Oracle 10g

Voici ma fonction :

Public Function GetContratDate(ByVal Année As String) As IList(Of IContrat)
Dim oConnection As New OracleFactory
Dim LesContrats As IList(Of IClass_Contrat) = New List(Of IContrat)
Dim LeContrat As IContrat

oConnection.Open()

Dim cmd As New OracleCommand("SELECT NumContrat, NumLiasse, IdClient, MatriculeResponsable, DateDebut " + _
"FROM RecupContrat WHERE DateCreation BETWEEN '01/01/" + Année + _
"' AND '31/12/" + Année + "'", oConnection.GetConnection)

Dim reader As OracleDataReader = cmd.ExecuteReader()

Try
While (reader.Read())
LeContrat = _factory.CreateContrat()
LeContrat.NumContrat = CType(reader("NumContrat"), Integer)
LeContrat.NumLiasse = CType(reader("NumLiasse"), Integer)
LeContrat.IdClient = CType(reader("IdClient"), Integer)
LeContrat.MatriculeResponsable = CType(reader("MatriculeResponsable"), Integer)
LeContrat.DateDebut = CType(reader("DateDebut"), Date)
LesContrats.Add(LeContrat)
End While
Catch ex As OracleException
MsgBox("Echec du listage des données : " + Chr(13) + ex.Message)
Finally
If Not reader Is Nothing Then reader.Close()
End Try

oConnection.Close()

Return LesContrats
End Function

Mon prolème :
Lorsque je tape cette requête dans SQL Tools pour année = 2008 il m'affiche 4 résultats, alors que lorsque je l'execute sous VB le "reader.read()" ne renvoi rien, je n'entre pas dans le while et il me renvoi directement au "Finally" de mon "try/catch".

Merci d'avance

2 réponses

Musiol Messages postés 2 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 2 juillet 2008
2 juil. 2008 à 14:46
Humm merci de ta réponse, mais mon problème n'était en fait pas la ^^'

J'avais tout simplement oublié de faire le commit sur SQL Tools pour valider les enregistrement de test que je venais d'effectuer...

...désolé pour le dérangement

Merci
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 juil. 2008 à 14:05
Salut
Comme répété au moins 10 fois par semaine :
Les dates dans les DB sont généralement stockées sous le format US
   Donc "31/12/2008" --> "12/31/2008"
Les dates doivent être encadrées par des # pour répondre à la syntaxe SQL (et pas des ' ):
   "FROM RecupContrat WHERE DateCreation BETWEEN #01/01/" + Année + _ 
   "# AND #12/31/" + Année + "#", oConnection.GetConnection)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous