2015-01-17 52 views
0

請不要倒票。我是這個網站的新手。 我嘗試過自己,但反覆發生同樣的錯誤。執行當前Web請求。對象不能從DBNULL轉換爲其他類型

protected void gvDepPayment_RowDataBound(object sender, GridViewRowEventArgs e) 
 
    { 
 
     if (e.Row.RowType == DataControlRowType.DataRow) 
 
     { 
 
      Label lbl = (Label)e.Row.FindControl("lblDeptName"); 
 
      DataTable dT = (DataTable)ViewState["DataBounded"]; 
 
      DataRow[] drows = dT.Select("DepartmentName = '" + lbl.Text + "'"); 
 
      int Count = 0; 
 
      foreach (DataRow item in drows) 
 
      { 
 
       Count += Convert.ToInt32(item["PaidAmount"]); 
 
      } 
 
      Label lblPaidAmount = (Label)e.Row.FindControl("lblPaidAmount"); 
 
      lblPaidAmount.Text = Count.ToString(); 
 
     } 
 
    }
<asp:GridView ID="gvDepPayment" runat="server" AutoGenerateColumns="false" 
 
            OnRowDataBound="gvDepPayment_RowDataBound"> 
 
            <Columns> 
 
             <asp:TemplateField HeaderText="Department Name"> 
 
              <ItemTemplate> 
 
               <asp:Label ID="lblDeptName" runat="server" Text='<%#Eval("DepartmentName") %>'></asp:Label> 
 
              </ItemTemplate> 
 
             </asp:TemplateField> 
 
             <asp:TemplateField HeaderText="Collection"> 
 
              <ItemTemplate> 
 
               <asp:Label ID="lblPaidAmount" runat="server" Text="0"></asp:Label> 
 
              </ItemTemplate> 
 
             </asp:TemplateField> 
 
            </Columns> 
 
           </asp:GridView>

我想找到的支付清單,並顯示在像系網格視圖明智

回答

1

此錯誤消息是由您的閱讀DataRow中的命名PaidAmount塔中內容而引起,可能在查詢返回的一組行中有一些空值。在這種情況下,您可以使用DataRow類的IsNull方法和條件運算符。在DBNull.Value的情況下,您希望爲您的計數添加零。

Count += item.IsNull("PaidAmount") ? 0 : Convert.ToInt32(item["PaidAmount"]); 
+0

:謝謝先生。 – Vikram

相關問題