如何检查当前日期与数据表中的日期?

问题描述:

我想检查今天的日期是否等于访问数据表中的日期,但它表示您不能将字符串转换为“system .data。data table”我该怎么办?如何检查当前日期与数据表中的日期?

public void ToDay() 
{ 
    DateTime dateTime = DateTime.UtcNow.Date; 
    string d = (string)Session["gouser"]; 

    DataTable t; 
    t="SELECT * FROM [ToDoList] where [UserID]='" 
     + d + "' AND [D]='" 
     + **dateTime.Date** + "'"); 
} 
+6

字符串不是DataTable。你需要打开一个连接来访问,创建一个适配器,然后用你的sql命令填充一个数据表。这太宽泛无法解释所需的细节。请在ADO.NET上搜索教程 – Steve

+1

您已将t声明为DataTable。然后你正在给它分配一个字符串。 Google如何使用数据读取器。 – Matt

如果你总是会使用当前的日期,你可以使用访问日期()函数而不是填充一个变量,并传递进去。

public void ToDay() { 
    string d = (string)Session["gouser"]; 

    var query = " 
     SELECT * FROM [ToDoList] 
     WHERE [UserID]='" + d + "' 
     AND [D]= Date();"; 

    DataTable t = query.CopyToDataTable(); 
} 
+0

你意识到仍然不会编译...你试图给一个'DataTable'对象赋一个字符串 –

+0

@Rufus,现在好点? –

可以使用GETDATE()sql函数:

public void ToDay() 
{ 
    string d = (string)Session["gouser"]; 

    DataTable t; 
    t="SELECT * FROM [ToDoList] where [UserID]='" 
    + d + "' AND [D]= GETDATE()"; 
} 
+0

这是Access,而不是SQL Server,同样,GetDate()返回的日期和时间将不匹配仅日期字段 –