我希望你们可以帮助解决我遇到的一个小问题。在尝试检查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)
所以上面是我所拥有的,我得到的错误是唯一的赋值调用增量递减和新的对象表达式可以用作语句&#39;消息。
我有点难过,因为C#对我来说还是个新人,所以对任何帮助表示赞赏!
感谢。
答案 0 :(得分:6)
&&
而不是DataReader.IsDBNull
代替DateTime
与String
进行比较,为什么要将其转换为字符串?DateTime feedate = new DateTime(2013, 09, 01);
if (!rsData.IsDBNull(rsData.GetOrdinal("M_Start")) && (DateTime)rsData["M_Start"] < feedate)
{
// ...
}
答案 1 :(得分: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在回答中指出的那样,还存在其他一些缺陷。