2

希望大家帮忙解决我遇到的一个小问题。尝试检查 datareader 值是否小于指定的 dateTime 值并需要一些帮助时,我遇到了一些错误。

DateTime feedate = new DateTime(2013,09,01);
if (rsData["M_Start"] != DBNull.Value) & (Convert.ToDateTime(rsData["M_Start"]).ToString("yyyy/mm/dd") < feedate)

所以上面是我所拥有的,我得到的错误是“唯一的赋值调用递增递减和新对象表达式可以用作语句”消息。

我有点难过,因为 C# 对我来说仍然很新,所以感谢您的帮助!

谢谢。

4

2 回答 2

6
  1. &&您应该使用逻辑和
  2. 你应该DataReader.IsDBNull改用
  3. 您不应该将 aDateTime与 a进行比较String,为什么要将其转换为字符串?

DateTime feedate = new DateTime(2013, 09, 01);
if (!rsData.IsDBNull(rsData.GetOrdinal("M_Start")) && (DateTime)rsData["M_Start"] < feedate)
{
    // ...
}
于 2013-04-29T09:08:15.753 回答
0

你有错误的括号和“和”运算符。代码应为:

DateTime feedate = new DateTime(2013,09,01);
if (rsData["M_Start"] != DBNull.Value && Convert.ToDateTime(rsData["M_Start"]).ToString("yyyy/mm/dd") < feedate)
{
    // code
}

&运算符是按位或,而运算&&符是逻辑或。该if语句采用括号中的条件,如下所示:if (… condition goes here …).

注意:正如 Tim Schmelter 在他的回答中指出的那样,还有其他几个缺陷。

于 2013-04-29T09:06:29.493 回答