使用C#查找数据集是否包含过去2天的任何数据

时间:2015-03-16 18:09:40

标签: c# sql asp.net

我正在调用数据库并获取有关用户的一些数据。如果数据集不包含过去2天的任何数据,我只想将用户重定向到另一个页面。数据看起来像这样:

UserID               DateSubmitted
User1               2015-03-13 00:00:00.000
User1               2015-03-15 00:00:00.000
User1               2015-03-16 00:00:00.000

因此,如果用户在过去2天内未提交任何内容,我想将用户重定向到另一个页面。在这种情况下,我们看到用户确实在3/13,3 / 15和3/16提交但未能在3/14提交,所以我想将他重定向到另一页。这是我到目前为止所做的,但无法完成......

 string tempUser = (string)Session["USRID"];
            SqlDataAdapter da = new SqlDataAdapter(@"Select UserID, DateSubmitted from myTable where userid = @userid ", sqlcon);
            DataTable dtSETS = new DataTable();
            da.SelectCommand.Parameters.AddWithValue("@Userid", (tempUser));
            da.Fill(dtSETS);

            if (dtSETS.Rows.Count > 0)
            {
                DataRow dtSETS_row = dtSETS.Rows[0];


                 //i want to do the checking here..
                 if(some condition here)
                   {

                   }

             }

1 个答案:

答案 0 :(得分:0)

我相信这个SQL查询将为您完成工作。 (通过让SQL Server完成工作,应该会有更少的数据返回到客户端应用程序,性能应该更好。)

DECLARE @MyTable table (UserID varchar(50), DateSubmitted datetime);
INSERT @MyTable VALUES( 'User1', '3/13/2015');
INSERT @MyTable VALUES( 'User1', '3/15/2015');
INSERT @MyTable VALUES( 'User1', '3/16/2015');
--INSERT @MyTable VALUES( 'User1', '3/14/2015');

SELECT UserID, DateSubmitted 
FROM @MyTable 
WHERE userid = 'User1' 
AND DATEDIFF(day, DateSubmitted, GETDATE()) = 0 
AND (SELECT COUNT(*) 
     FROM @MyTable 
     WHERE UserID = 'User1' 
     AND DATEDIFF(day, DateSubmitted, GETDATE()) IN (1,2)) < 2;