2013-09-30 273 views
0

我有一個項目,該項目是文件同治系統在這itry到apporve /拒絕文件和FR這 我創造批准和拒絕文檔當點擊確認按鈕

ALTER procedure [dbo].[sprejectapprove] 
     @UserID int, 
     @DocID int, 
     @ApproveType nvarchar(50) 
as 
    Insert into Approval(UserID,DocID,ApproveType) 
    values(@UserID,@DocID,@ApproveType) 

SP批准無響應:

ALTER procedure [dbo].[spinsertapprove] 
    @UserID int, 
    @DocID int, 
    @ApproveType nvarchar(50) 
as 
    Insert into Approval(UserID,DocID,ApproveType) 
    values(@UserID,@DocID,@ApproveType) 

和代碼是

protected void GrdFileApprove_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "_Approve") 
    { 
     //using (SqlConnection con = DataAccess.GetConnected()) 
     using (SqlConnection con = 
       new SqlConnection(ConfigurationManager.ConnectionStrings["mydms"].ConnectionString)) 
     { 
      try 
      { 
       int rowindex = Convert.ToInt32(e.CommandArgument); 
       GridViewRow row = (GridViewRow)  

      ((Control)e.CommandSource).NamingContainer; 
       LinkButton Prove_Button = 
       (LinkButton)row.FindControl("BtnApprove"); 
       SqlCommand cmd = new SqlCommand("spinsertapprove", con); 
       cmd.CommandType = CommandType.StoredProcedure; 
       int result = cmd.ExecuteNonQuery(); 
       if (result != 0) 
       { 
        GrdFileApprove.DataBind(); 
       } 
      } 

      catch 
      { 
       apfi.Text = "Not Approve"; 
      } 
      finally 
      { 
       con.Close(); 
      } 
     } 
    } 


    else if (e.CommandName == "_Reject") 
    { 
     using (SqlConnection con = 
        new SqlConnection(ConfigurationManager.ConnectionStrings["mydms"].ConnectionString)) 
     { 
      try 
      { 
       int rowindex = Convert.ToInt32(e.CommandArgument); 
       GridViewRow row = (GridViewRow) 
       ((Control)e.CommandSource).NamingContainer; 
       LinkButton Prove_Button = (LinkButton)row.FindControl("Button1"); 
       SqlCommand cmd = new SqlCommand("sprejectapprove", con); 
       cmd.CommandType = CommandType.StoredProcedure; 
       int result = cmd.ExecuteNonQuery(); 
       if (result != 0) 
       { 
        GrdFileApprove.DataBind(); 
       } 
      } 

      catch 
      { 
       apfi.Text = "Rejct"; 
      } 
      finally 
      { 
       con.Close(); 
      } 
     } 
    } 
} 

當我得不克碼並點擊批准或拒絕按鈕,它無法繼續進行,也沒有給我任何錯誤

這grdiview

<div> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"/> 
     <asp:UpdatePanel runat="server" ID="UPanle" 
      ondatabinding="UPanle_DataBinding_Click"> 
      <ContentTemplate> 
      <asp:GridView ID="GrdFileApprove" runat="server" 
      AutoGenerateColumns="false" 
       onrowcommand="GrdFileApprove_RowCommand" 
       onselectedindexchanged="GrdFileApprove_SelectedIndexChanged"> 
       <Columns> 
        <asp:TemplateField HeaderText="S no"> 
         <ItemTemplate> 
          <%# Container.DataItemIndex+1 %> 
          <asp:HiddenField runat="server" ID="HdnFileID" Value='<%# 
         Eval("DocID") %>' /> 
         </ItemTemplate> 
        </asp:TemplateField> 
        <asp:BoundField DataField="DocID" HeaderText="DocumentID" /> 
        <asp:BoundField DataField="DocName" HeaderText="DocName" /> 
        <asp:BoundField DataField="Uploadfile" HeaderText="File Name" /> 
        <asp:BoundField DataField="DocType" HeaderText="Document" /> 
        <asp:BoundField DataField="DepType" HeaderText="Department" /> 
        <asp:TemplateField HeaderText="S no"> 
         <ItemTemplate> 
          <asp:Button runat="server" Id="BtnApprove" 
         CommandName="_Approve" 
           CommandArgument='<%# Eval("DocID") %>' 
          Text="Aprrove" /> 
          <asp:Button runat="server" Id="Button1" 
          CommandName="_Reject" 
           CommandArgument='<%# Eval("DocID") %>' Text="Reject" /> 
         </ItemTemplate> 
        </asp:TemplateField> 
       </Columns> 
      </asp:GridView> 
     </ContentTemplate> 


     </asp:UpdatePanel> 

</div> 
+1

你可以在你的GridView聲明的地方顯示ASPX標記嗎? –

+0

你能夠在調試模式下運行嗎?如果你在RowCommand處理程序中設置了一個斷點,它是否被觸發? e.CommandName的價值是什麼? – lincolnk

+0

是的,我設置了一個斷點,但當我調試並按f11然後它仍然無法進行 – user2832406

回答

0

你不加入任何參數值,以您的SQL調用,因此存儲過程可能根本不會被調用,因爲您沒有定義任何默認值。

你需要調用之前添加每個參數如下:

myCommand.Parameters.AddWithValue("@UserID", userId); 
myCommand.Parameters.AddWithValue("@DocID", docId); 
myCommand.Parameters.AddWithValue("@ApproveType", "Approve"); 

與最後一個是:

myCommand.Parameters.AddWithValue("@ApproveType", "Reject"); 

爲拒絕的情況。

這些值需要從存儲的地方讀取,而不是被硬編碼。

+0

它還沒有給我任何迴應時我點擊批准或拒絕按鈕 – user2832406

+0

@ user2832406 - 檢查調試器是否將正確的值傳遞給參數。修改存儲過程,以便它可以執行其他操作,以便確認它實際上是否已被調用。使用SQL跟蹤來驗證存儲過程是否被調用。 – ChrisF