2012-04-23 1 views
0

"AVAILABLEDATE" est une colonne de type DATE.Dans quel format Oracle attend-il une valeur de date, et comment puis-je donner à Oracle ce qu'il veut?

Je peux interroger la table via Toad et obtenir des résultats. Cependant, dans le code (Winforms/C#/dotConnect), cela ne fonctionne pas.

ocmd.Parameters.Add("AVAIL_DATE", getDateToQuery()); 

Je suis sûr que le problème est la façon dont je passe la date:

private DateTime getDateToQuery() { 
    DateTime candidateVal = dateTimePickerScheduleDate.Value; 
    if (candidateVal.Equals(null)) { 
    candidateVal = DateTime.Now; 
    } 
    return candidateVal; 
} 

... mais je ne sais pas comment forcer la valeur de date à la format Oracle reconnaîtra.

+0

Quelle est l'instruction select que vous avez mis dans la commande? Les marqueurs de paramètres sont différents pour .NET et Toad. – davisoa

+0

quel message d'erreur obtenez-vous? – Ulises

+0

Pas d'erreur msg, ne renvoyait pas de vals; fixé maintenant - voir ci-dessous. –

Répondre

0

Cela fonctionne, mais je ne suis pas sûr que c'est la meilleure façon:

int iFromYear = dateTimePickerScheduleDate.Value.Year; 
int iFromMonth = dateTimePickerScheduleDate.Value.Month; 
int iFromDay = dateTimePickerScheduleDate.Value.Day; 
. . . 
ocmd.Parameters.Add("AVAIL_DATE", new DateTime(iFromYear, iFromMonth, iFromDay)); 
4

Essayez d'ajouter le type de paramètre:

OracleParameter p1 = new OracleParameter("AVAIL_DATE", OracleDbType.Date); 
p1.Value = getDateToQuery(); 
ocmd.Parameters.Add(p1); 

Aussi, assurez-vous de fournir les paramètres afin, la dernière fois que je travaillais avec Oracle Je me souviens des noms des paramètres ont été ignorés.

+0

Semble élégant, mais ça ne marche pas - mon style kludgy fonctionne, cependant ...? –

+0

@ClayShannon autre que le type, je ne vois pas quelle est la différence, avez-vous changé quelque chose d'autre? peut-être votre fonction getDateToQuery() ne retournait pas la valeur dont vous aviez besoin? – Ulises