Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 函数或过程在I';m使用SqlDataSource';s更新命令_C#_Asp.net_Sql Server_Parameters_Updatecommand - Fatal编程技术网

C# 函数或过程在I';m使用SqlDataSource';s更新命令

C# 函数或过程在I';m使用SqlDataSource';s更新命令,c#,asp.net,sql-server,parameters,updatecommand,C#,Asp.net,Sql Server,Parameters,Updatecommand,我正在使用启用编辑和更新的gridview,并使用SqlDataSource中的UpdateCommand来更新数据。但每当我试图更新一条记录时,我都会遇到异常 函数或过程指定的参数太多 代码: using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; public partial class Manager_UnApprovedActivites : System.Web.UI.Page

我正在使用启用编辑和更新的gridview,并使用
SqlDataSource
中的
UpdateCommand
来更新数据。但每当我试图更新一条记录时,我都会遇到异常

函数或过程指定的参数太多

代码:

using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

public partial class Manager_UnApprovedActivites : System.Web.UI.Page
{
   protected void Page_Load(object sender, EventArgs e)
   {
   }

   protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
   {
        string id = GridView1.DataKeys[e.RowIndex].Value.ToString();
        string Appproval =     ((CheckBox)GridView1.Rows[e.RowIndex].Cells[9].Controls[0]).Text;
        SqlDataSource1.UpdateParameters["id"].DefaultValue = id.ToString();
        SqlDataSource1.UpdateParameters["approval"].DefaultValue = Appproval.ToString();
        SqlDataSource1.Update();
    }
}
ASP.net:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UnApprovedActivites.aspx.cs" Inherits="Manager_UnApprovedActivites" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
       <title></title>
   </head>
   <body>
       <form id="form1" runat="server">
       <div>
       </div>
       <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="AcitivityId" DataSourceID="SqlDataSource1" 
            Height="273px" Width="976px" AutoGenerateEditButton ="True">
          <Columns>
             <asp:BoundField DataField="AcitivityId" HeaderText="AcitivityId" InsertVisible="False" ReadOnly="True" SortExpression="AcitivityId" />
             <asp:BoundField DataField="ActiviityName" HeaderText="ActiviityName" SortExpression="ActiviityName" />
             <asp:BoundField DataField="ActivityLocation" HeaderText="ActivityLocation" SortExpression="ActivityLocation" />
             <asp:BoundField DataField="ActivityStartDate" HeaderText="ActivityStartDate" SortExpression="ActivityStartDate" />
             <asp:BoundField DataField="ActivityDueDate" HeaderText="ActivityDueDate" SortExpression="ActivityDueDate" />
             <asp:BoundField DataField="ActivityDescription" HeaderText="ActivityDescription" SortExpression="ActivityDescription" />
             <asp:BoundField DataField="ActvityTypeId" HeaderText="ActvityTypeId" SortExpression="ActvityTypeId" />
             <asp:BoundField DataField="BarchId" HeaderText="BarchId" SortExpression="BarchId" />
             <asp:CheckBoxField DataField="Approval(Authority)" HeaderText="Approval(Authority)" SortExpression="Approval(Authority)" />
             <asp:CheckBoxField DataField="ApprovalManager" HeaderText="ApprovalManager" SortExpression="ApprovalManager" />
             <asp:BoundField DataField="DateAdded" HeaderText="DateAdded" SortExpression="DateAdded" />
          </Columns>
       </asp:GridView>
       <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:WCA DatabaseConnectionString2 %>" 
            SelectCommand="SELECT * FROM [Activities]" 
            UpdateCommand="ApproveActivity" 
            UpdateCommandType="StoredProcedure">
            <UpdateParameters>
                   <asp:Parameter Name="id" Type="Int64" />
                   <asp:Parameter Name="approval" Type="Boolean" />
            </UpdateParameters>
        </asp:SqlDataSource>
     </form>
  </body>
</html>

在以下行中:

  string Appproval =     ((CheckBox)GridView1.Rows[e.RowIndex].Cells[9].Controls[0]).Text;
返回的复选框文本不是复选框值,而是使用

CheckBox chb= ((CheckBox)GridView1.Rows[e.RowIndex].Cells[9].Controls[0]);             
if (chb != null)
            {
                SqlDataSource1.UpdateParameters["approval"].DefaultValue =chb.Checked;
            }

要求:确保在节中声明的paramList与SP的paramList相同。
ApproveActivity
存储过程是什么样子的?需要哪些参数?ApprovedActivity id bigint的代码,批准位为UPDATE[WCA Database].[dbo].[Activities]SET ApprovalManager=approval,其中AcitivityId=idies-很好-但我想看看您在存储过程中定义了哪些参数,。。。。