2013-09-30 4 views
0

утвердить у меня есть проект, который система документов Managment в этом itry в apporve/отклонить документы и фр это я создать зр для одобрять и отклонять документНет ответа, когда нажмите на кнопку

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

утверждают:

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(); 
      } 
     } 
    } 
} 

когда я Debu г код и нажмите на кнопку одобрять или не может в дальнейшем продолжить отклонять, а также не показать мне какую-либо ошибку

это 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

Не могли бы вы показать разметку ASPX, где объявлен ваш GridView? –

+0

Вы можете работать в режиме отладки? если вы установите контрольную точку в обработчике RowCommand, она попала? Какова ценность e.CommandName? – lincolnk

+0

да, я установил точку останова, но когда я отлаживаю и нажимаю f11, тогда он все еще не может продолжить 0dd – 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 Trace для проверки вызова вызываемой хранимой процедуры. – ChrisF

Смежные вопросы