Musiol
Messages postés2Date d'inscriptionmercredi 22 juin 2005StatutMembreDernière intervention 2 juillet 2008
-
2 juil. 2008 à 13:54
Musiol
Messages postés2Date d'inscriptionmercredi 22 juin 2005StatutMembreDerniè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".
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)