当前位置:编程学习 > C#/ASP.NET >>

循环比较的方法,求高手解答,在线等

        SqlConnection conn = new SqlConnection();
        conn = new SqlConnection();
         conn.ConnectionString = "Data Source=(local);Initial Catalog=YYCL_CRM;UID=sa;Password=sa";
      conn.Open();
      string strsql = "select T_DateTime from T_UserInfo";
      SqlCommand cmd = new SqlCommand(strsql, conn);
      SqlDataReader sqlreader = cmd.ExecuteReader();
      while (sqlreader.Read())
      {
          TextBox1.Text = sqlreader["T_DateTime"].ToString();
      }
      sqlreader.Close();
      conn.Close();

T_DateTime 这个数据库里是datetime类型,我想实现如果日期和今天比较超过60天,这张表里“TXT”这个字段就由0变成1.
求高手解答,在线等 --------------------编程问答-------------------- 没人在吗? --------------------编程问答-------------------- 自己顶 --------------------编程问答-------------------- 自己顶 --------------------编程问答-------------------- TimeSpan tsCount = time1.Subtract(time2);//两时间之差
--------------------编程问答-------------------- 高人在何方啊 --------------------编程问答-------------------- 为什么不用sql来实现呢
SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate//结果为1
--------------------编程问答--------------------   while (sqlreader.Read())
   {
       DateTime date = (DateTime)sqlreader["T_DateTime"];
       if((date - System.DateTime.Now).Total****>=60)
       {
          textbox1.text="1";
       }
       break;
   }
  --------------------编程问答-------------------- 这个要实现的是,如果数据库里有日期超过60天的数据。TXT就由0变成1 --------------------编程问答--------------------
SELECT DATEDIFF(day,T_DateTime,GetDate()) AS DiffDate
读出来大于60就设置txt字段
其实你也写个存储过程来实现 --------------------编程问答--------------------
SELECT DATEDIFF(day,T_DateTime,GetDate()) AS DiffDate
这个应该怎么放到程序里,我没看太明白 --------------------编程问答-------------------- 加入数据库里有这样几条数据
id      time           txt
1       2010-1-10      0
2       2012-3-5       1
3       2010-5-10      0
4       2012-9-5       0
我想实现的是,通过一个方法,自动检测到日期超过60天的数据,TXT自动变成1,如果没超过还是0 --------------------编程问答--------------------
引用 10 楼 mawillpan 的回复:
SELECT DATEDIFF(day,T_DateTime,GetDate()) AS DiffDate
这个应该怎么放到程序里,我没看太明白

sql语句啊
 string strsql = "SELECT DATEDIFF(day,(select T_DateTime from T_UserInfo) T_DateTime ,GetDate()) AS DiffDate";
试试把 --------------------编程问答-------------------- SELECT case  when DATEDIFF(day,T_DateTime,GetDate())>60 then '1' else '0' end --------------------编程问答-------------------- 这么写不行啊
引用 12 楼 chinajiyong 的回复:
引用 10 楼 mawillpan 的回复:
SELECT DATEDIFF(day,T_DateTime,GetDate()) AS DiffDate
这个应该怎么放到程序里,我没看太明白

sql语句啊
 string strsql = "SELECT DATEDIFF(day,(select T_DateTime from T_UserInfo) T_DateTime ,GetDa……
--------------------编程问答-------------------- 如果写存储过程的话,是怎么写 --------------------编程问答--------------------
引用 14 楼 mawillpan 的回复:
这么写不行啊引用 12 楼 chinajiyong 的回复:
引用 10 楼 mawillpan 的回复:
SELECT DATEDIFF(day,T_DateTime,GetDate()) AS DiffDate
这个应该怎么放到程序里,我没看太明白

sql语句啊
string strsql = "SELECT DATEDIFF(day,(select T_DateTime fr……

自己到数据库查询分析器里面去试一试 --------------------编程问答-------------------- 数据库里有这样几条数据
id time          txt
1 2010-1-10      0
2 2012-3-5       1
3 2010-5-10      0
4 2012-9-5       0
我想实现的是,通过一个方法,自动检测到日期超过60天的数据,TXT字段里的数据自动变成1,如果没超过还是0 
 
--------------------编程问答-------------------- 头疼啊 --------------------编程问答-------------------- 没积分发帖了,高手看见针对的解决一下 --------------------编程问答-------------------- 你是想修改数据表里的数据吗?那只要在程序里执行“update T_UserInfo set TXT = 1 where  datediff(day,[time],GETDATE())>60 or datediff(day,[time],GETDATE()) <-60” 就行;如果你是想显示数据,那查询语句可以改成“select ID,[TIME],CAST WHEN datediff(day,[time],GETDATE())>60 or datediff(day,[time],GETDATE()) <-60 THEN 1 ELSE 0 AS TXT * from  T_UserInfo”。 --------------------编程问答-------------------- SQL:datediff(dd,getdate(),cast((case YourDate when null then '1900-01-01' else YourDate end) as datetime))>0 --------------------编程问答-------------------- 自己顶 --------------------编程问答-------------------- //读取值 表tb
TimeSpan t1, t2, t3;
int n;

//循环数据
foreach (DataRow nR in tb.Rows)
{
     t1 = new TimeSpan(Convert.ToDateTime("2012-02-10").Ticks);
     t2 = new TimeSpan(DateTime.Now.Ticks);
     t3 = t2.Subtract(t1);
     n = t3.Days;
     if(n>=60)
     {
         //更改TXT值
      }
} --------------------编程问答-------------------- 这个工具必须人手一份 --------------------编程问答-------------------- 为什么不直接写个语句更新?
update table set Txt=1 where datediff(dd,T_DateTime,getdate())>60
--------------------编程问答--------------------
引用 7 楼 jjkk168 的回复:
  while (sqlreader.Read())
   {
       DateTime date = (DateTime)sqlreader["T_DateTime"];
       if((date - System.DateTime.Now).Total****>=60)
       {
          textbox1.text="1";
       }
 ……

我觉得LZ用这种比较合适啊,与当前时间比较下在判断
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,