2012-02-15 2 views
0

나는 C#을 사용하고있어 0보다 값이 커질 나는 데이터베이스에서 같은 데이터를 얻을 :

da.SelectCommand = new SqlCommand("SELECT name,company,startdate,enddate,DATEDIFF(day,GETDATE(),enddate) AS days FROM Person", cn); 
ds.Clear(); 
da.Fill(ds); 
dgvViolation.DataSource = ds.Tables[0]; 

및 데이터 DISPALY이 같은 DataGridView에의합니다 :

name company startdate enddate days 
--------------------------------------- 
john IBM  12/2/2012 20/2/2012 5  
steven IBM  1/2/2012 12/2/2012 -3 

내가 필요 요일 열에 만 나타나는 양수 값을 표시하려면 datagridview를 사용하십시오. 어떻게해야합니까?

+0

[Math.Abs] (http://msdn.microsoft .com/ko-us/library/dk4666yx.aspx)? Btw, T-SQL에서도 [ABS] (http://msdn.microsoft.com/en-us/library/ms189800.aspx) - 함수로 존재합니다. –

+0

데이터베이스 서버를 필터링 ('ds'는 양수 값만 포함)하거나 클라이언트 ('ds '내용의 일부만 표시)로 필터링 하시겠습니까? – Richard

답변

0

왜 그냥 0 위의 값을 반환하기 위해 SQL 명령을 변경하지 마십시오에 쿼리?

하지만 모든 데이터가 반환을 함께하고 싶어,이 같은 RowDataBound 상기의 gridview의 경우, 뭔가를 사용할 수 있습니다

protected void gridview_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == System.Web.UI.WebControls.DataControlRowType.DataRow) 
     { 
      //look at the value of the days column and use e.Row.Style["Display"] = "none"; to hide it. 
     } 
    } 
1

변경

"SELECT name,company,startdate,enddate,DATEDIFF(day,GETDATE(),enddate) AS days FROM Person WHERE days > 0" 
+0

"날자, 회사, 시작일, 종료일, DATEDIFF (일, GETDATE(), 종료일) AS 일로부터 WHERE DATEDIFF (일, GETDATE(), 종료일)> 0" – user1045265