我正在尝试在c#上编写代码来比较我在SQL表上的日期(表:项目,列“endTime”)与datetime.now以及结果 - 显示图像。
示例:
如果列表上的时间早于现在的时间..那么在aspx image1上显示,否则显示image2。
我已经尝试通过sql命令执行此操作:
private DateTime endTime(out int lastDate)
{
SqlConnection connection = new SqlConnection("Data Source=******;Initial Catalog=******;User ID=*****;Integrated Security=False;");
string commandtext = "SELECT TOP(1) endTime FROM items";
SqlCommand command = new SqlCommand(commandtext, connection);
connection.Open();
SqlCommand command2 = new SqlCommand(commandtext, connection);
lastDate = (int)command2.ExecuteScalar();
connection.Close();
return ...
}
但我对返回有问题,并且执行方法......:
int d;
Console.WriteLine(endTime(out d));
if (d < DateTime.Now)
{
image1.Visible = true;
}
else
{
image2.Visible = true;
}
Console.WriteLine(d);
但是我得到了错误,但我相信它来自回归。
答案 0 :(得分:2)
而不是if (d < DateTime.Now)
使用此:if (d < DateTime.Now.Date)
答案 1 :(得分:0)
你不应该从查询中输出DateTime而不是int吗?此外,堆栈跟踪/调试器应该为您提供异常的行号。你可以发布堆栈跟踪吗?
答案 2 :(得分:0)
int
转换为DateTime
,请显示代码using()
块中包含SqlConnection,如下所示:using (SqlConnection connection = new SqlConnection(...))
答案 3 :(得分:0)
我建议让数据库在sql中进行日期比较。
可以在查询中将SYSDATE与EndTime进行比较,并且您可以不返回不匹配的行(这允许您平等地处理结果集中的每一行),或者在返回集中检查一个简单值看看时间是否正确。