0

“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 将识别的格式。

4

2 回答 2

4

尝试添加参数类型:

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

另外,请确保按顺序提供参数,我记得上次使用 Oracle 时,参数的名称被忽略了。

于 2012-04-23T17:57:38.657 回答
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));
于 2012-04-23T18:10:49.613 回答