2013-02-23 50 views
0

我有一个编码C#的asp.net项目。添加两个Gridview列与条件

在这里我有这样的问题; “我需要计算GridView中单元格的添加”我怎么能做到这一点。我需要总结IN和OUT分钟,并将它们与60分开来寻找工作时间。

select sum(cell1 + cell2)as not does work,because I have a grid like this;

NAME  WORK_TYPE  FM   FM_HOUR 

------------------------------------------------------- 

Mike   IN   -2800     

Mike   OUT   3400    ?? 

Jane   IN    400 

Jane   OUT   -100    ?? 

应该是什么?在这里标记。

我已经写了这个,但没有工作的课程。因为该程序不知道如何从那里获取值。

以下是示例代码;

SqlConnection conn; 
     SqlCommand cmd = new SqlCommand(); 
     string strSQL = "UPDATE bilgiler3 SET FM_HOUR= SELECT SUM((FM WHERE WORK_TYPE='OUT') + (FM WHERE WORK_TYPE='IN'))/60 " 
     string bag_str = WebConfigurationManager.ConnectionStrings["asgdb01ConnectionString"].ConnectionString; 
     conn = new SqlConnection(bag_str); 
     conn.Open(); 

。 。 。

请等待你的帮助。

非常感谢。

回答

0

GridView允许添加列。我使用TemplateFieldItemTemplate我使用标签并与其他单元格数据的结果进行数学计算并在其中显示结果。在后面的代码中创建一个子例程,并为每一行使用一个For Looprow.FindControl将帮助您找到标签并显示结果。如果您使用BoundFields切换到TemplateFields,那么您可以进行控制,您可以找到并获得值。

 <Columns> 
     <asp:TemplateField HeaderText="some header info"> 
      <ItemTemplate > 
      <asp:Label ID="lbId" runat="server" Text='<%# Eval("Id") %>' /> 
      </ItemTemplate> 
      </asp:TemplateField>... 


For Each row As GridViewRow In gv.Rows 
Dim id As Label = TryCast(row.FindControl("lbId"), Label) 
'other variables 
Next 
+0

是不是有办法用sql命令? – 2013-02-23 02:25:21

+0

我觉得这将是最简单的方式,减少对你的数据库的命中,并且所有的数据已经被加载。 – OneFineDay 2013-02-23 02:30:59

+0

那么,根据我的表格,我应该在哪里写什么? 我没有明白For Grid作为GridViewRow ......方。 – 2013-02-23 02:48:23