C# Oracle希望日期值的格式是什么?我如何才能满足Oracle的要求?

C# Oracle希望日期值的格式是什么?我如何才能满足Oracle的要求?,c#,winforms,oracle,datetime,dotconnect,C#,Winforms,Oracle,Datetime,Dotconnect,“AVAILABLEDATE”是日期类型的列 我可以通过Toad查询表并得到结果。但是,在(Winforms/C#/dotConnect)代码中,它不起作用 ocmd.Parameters.Add("AVAIL_DATE", getDateToQuery()); 我很确定问题在于我的约会方式: private DateTime getDateToQuery() { DateTime candidateVal = dateTimePickerScheduleDate.Value; if

“AVAILABLEDATE”是日期类型的列

我可以通过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可以识别的格式。

尝试添加参数类型:

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

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

请尝试添加参数类型:

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

另外,请确保您按顺序提供参数,上次我与Oracle合作时,我记得这些参数的名称被忽略了。

这是可行的,但我不确定这是最好的方式:

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));

这是可行的,但我不确定这是不是最好的方法:

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));

您在命令中输入的select语句是什么?NET和Toad的参数标记不同。您收到了什么错误消息?没有错误消息,只是没有返回任何VAL;现在已修复-请参见下面。您在命令中输入的select语句是什么?NET和Toad的参数标记不同。您收到了什么错误消息?没有错误消息,只是没有返回任何VAL;现在修好了-看下面。看起来很优雅,但不管用-我的笨拙方式管用,但是…?@ClayShannon除了我不知道有什么不同的类型,你还改变了什么吗?也许你的函数getDateToQuery()没有返回你所需要的值?看起来很优雅,但它不起作用-我的笨拙方式起作用了,但是…?@ClayShannon除了类型我不知道有什么区别,你还做了什么改变吗?也许函数getDateToQuery()没有返回所需的值?