问题描述:

i have a project which is document managment system in this itry to apporve/reject documents and fr this

i create sp for approve and reject document

ALTER procedure [dbo].[sprejectapprove]

@UserID int,

@DocID int,

@ApproveType nvarchar(50)

as

Insert into Approval(UserID,DocID,ApproveType)

values(@UserID,@DocID,@ApproveType)

approve:

 ALTER procedure [dbo].[spinsertapprove]

@UserID int,

@DocID int,

@ApproveType nvarchar(50)

as

Insert into Approval(UserID,DocID,ApproveType)

values(@UserID,@DocID,@ApproveType)

and code is

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

}

}

}

}

when i debug the code and click on approve or reject button it can not further proceed and also not show me any error

this is 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>

网友答案:

You're not adding any parameter values to your SQL calls so the stored procedures are probably not being called at all as you haven't got any default values on the definitions.

You need to add the following for each parameter before the calls:

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

with the last one being:

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

for the reject case.

The values need to be read from where ever they are stored rather than being hard coded of course.

相关阅读:
Top