比较存储过程返回的日期与控制台应用程序当前日期

本文关键字:控制台 应用程序 当前日期 日期 存储过程 返回 比较 | 更新日期: 2023-09-27 18:07:23

我有一个存储过程,它显示如下所示的一组天数。

2015-08-08
2015-08-22
2015-09-05
2015-09-19
2015-10-03
2015-10-17
2015-10-31
2015-11-14
2015-11-28
2015-12-12
2015-12-26

我在控制台应用程序中有一个XML文件。它有一个根元素和一个子元素。子元素的默认值为40。像下面,

<Hours>
  <TotalHours>40</TotalHours>
</Hours>

需求: 当控制台应用程序中的当前日期与任何一个存储过程返回的日期匹配时,它应该将xml值从40更改为48。

比较存储过程返回的日期与控制台应用程序当前日期

try this

    static void Main()
    {
        DateTime currentDate = DateTime.Now.Date;            
        //Mock dataTable is used instead of stored procedure resultset
        DataTable dt = new DataTable();
        dt.Columns.Add("Date", typeof(DateTime));
        dt.Rows.Add("2015-08-11");
        dt.Rows.Add("2015-08-13");
        string xmlFile = "hours.xml";            
        var isDateFound = from row in dt.AsEnumerable()
                          where row.Field<DateTime>("Date") == currentDate
                          select row;
        if (isDateFound.Count() > 0)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(xmlFile);
            var node = doc.DocumentElement.SelectSingleNode("TotalHours");
            node.InnerText = (Convert.ToInt32(node.InnerText) + 8).ToString();
            doc.Save(xmlFile);
        }         
    }

——SJ

可以了,

public class Class1
{
   static void Main()
   {
       SqlConnection conn = new SqlConnection(connection);
       conn.Open();
       SqlCommand cmd = new SqlCommand("calculatesaturday", conn);

       cmd.CommandType = CommandType.StoredProcedure;
       cmd.Parameters.Add("@firstsaturday", SqlDbType.Date).Value = "2015-08-08";
       SqlDataReader reader = cmd.ExecuteReader();
       DataTable dt1 = new DataTable();
       dt1.Load(reader);
       conn.close();
       string xmlFile1 = "xmlfile.xml"; 
       DateTime currentDate1 = DateTime.Now.Date;
       var isDateFound = from row in dt1.AsEnumerable()
                         where row.Field<DateTime>("StartDate") == currentDate1
                         select row;
       if (isDateFound.Count() > 0)
       {
           XmlDocument doc = new XmlDocument();
           doc.Load(xmlFile1);
           var node = doc.DocumentElement.SelectSingleNode("TotalHours");
           node.InnerText = (Convert.ToInt32(node.InnerText) + 8).ToString();
           doc.Save(xmlFile1);
       }       
   }      

}

这里,"StartDate"是来自存储过程

的列名

供货@codeninja