“AVAILABLEDATE”是DATE类型的列。
我可以通过Toad查询表格并获得结果。但是,在(Winforms / C#/ dotConnect)代码中,它不起作用。
ocmd.Parameters.Add("AVAIL_DATE", getDateToQuery());
我很确定问题是我通过日期的方式:
private DateTime getDateToQuery() {
DateTime candidateVal = dateTimePickerScheduleDate.Value;
if (candidateVal.Equals(null)) {
candidateVal = DateTime.Now;
}
return candidateVal;
}
...但我不知道如何强制日期值采用Oracle将识别的格式。
答案 0 :(得分:4)
尝试添加参数类型:
OracleParameter p1 = new OracleParameter("AVAIL_DATE", OracleDbType.Date);
p1.Value = getDateToQuery();
ocmd.Parameters.Add(p1);
另外,请确保按顺序提供参数,上次使用Oracle时我记得忽略了参数的名称。
答案 1 :(得分:0)
这有效,但我不确定它是最好的方法:
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));