2013-02-23 81 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