Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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# 更新Gridview中的选定行_C#_Asp.net_Gridview - Fatal编程技术网

C# 更新Gridview中的选定行

C# 更新Gridview中的选定行,c#,asp.net,gridview,C#,Asp.net,Gridview,当我按下“链接”按钮时,我只想更新网格视图中的选定行,但它在我的端部不起作用 这是我的设计页面 <asp:GridView ID="grdCompanyUsers" runat="server" DataKeyNames="id_company_user,nm_company_username" AutoGenerateColumns="false" GridLines="None" CssClass="grid" AlternatingRowStyle- BackCol

当我按下“链接”按钮时,我只想更新网格视图中的选定行,但它在我的端部不起作用

这是我的设计页面

<asp:GridView ID="grdCompanyUsers" runat="server"
   DataKeyNames="id_company_user,nm_company_username"
   AutoGenerateColumns="false" GridLines="None" CssClass="grid" AlternatingRowStyle-
   BackColor="#DDE0EF" OnRowDataBound="grdCompanyUsers_DataBound">
  <Columns>
  <asp:TemplateField>
  <EditItemTemplate>
  <asp:ImageButton ID="imgbtnCancel" runat="server" CommandName="Cancel" ImageUrl="~/Images
  /Cancel.jpg" ToolTip="Cancel" Height="20px" Width="20px" />
  </EditItemTemplate>
  <ItemTemplate>
  <asp:Label ID="CompUserID" runat="server" Width="15"  
   Text='<%#Eval("id_company_user")%>'> </asp:Label>
  </ItemTemplate>
  </asp:TemplateField>
  <asp:TemplateField>
  <ItemTemplate>
  <asp:Label ID="companyusername" runat="server" Width="51" 
   Text='<%#Eval("nm_company_username")%>'></asp:Label>
   </ItemTemplate>
   </asp:TemplateField>
   <asp:TemplateField>
   <ItemTemplate>
   <asp:Label ID="compName" runat="server" Width="56" Text='<%#Eval("nm_company_name")%>'>
   </asp:Label>
   </ItemTemplate>
   </asp:TemplateField>
   <asp:TemplateField>
   <ItemTemplate>
   <asp:Label ID="compDesc" runat="server" Width="129" Text='<%#Eval("nm_company_desc")%>'>
   </asp:Label>
   </ItemTemplate>
   </asp:TemplateField>
   <asp:TemplateField>
   <ItemTemplate>
   <asp:Label ID="compEmail" runat="server" Width="103px" 
    Text='<%#Eval("nm_company_email_address")%>'></asp:Label>
    </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField>
    <ItemTemplate>
    <asp:Label ID="compAddress" runat="server" Width="153px" 
     Text='<%#Eval("nm_company_address")%>'></asp:Label>
    </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField>
    <ItemTemplate>
    <asp:CheckBox ID="chkBoxStatus" runat="server" Width="15px" Enabled="false" 
     Text='<%#Eval("ind_active")%>'>
    </asp:CheckBox>
    </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField>
    <ItemTemplate>
    <asp:LinkButton ID="btnEdit" runat="server" Font-Underline="false" 
     CommandArgument='<%#Eval ("id_company_user")%>'
     OnClick="btnEdit_Click">Edit</asp:LinkButton>
    </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField>
    <ItemTemplate>
    <asp:LinkButton runat="server" ID="lnkDeny" Font-Underline="false" CommandName="Deny" 
     CommandArgument='<%# Eval("id_company_user") %>'
     OnClick="btnDeny_Click">Deny</asp:LinkButton>
    </ItemTemplate>
    </asp:TemplateField>
    </Columns>
    </asp:GridView>
以下是设计视图:

我只希望数据库中只有选定的行会受到影响。
非常感谢您的帮助。

请检查一下更新查询where子句,

您需要在sql语句中设置
id\u company\u user
值。使用如下参数

SqlCommand cmd = new SqlCommand("update ref_registration_company_user set ind_active=1 where id_company_user=@id_company_user", conn);
cmd.Parameters.AddWithValue("@id_company_user", id);
您需要在下面获取当前行
id\u company\u user
值检查,以便提问和回答,您可以使用 GridView和属性的
OnRowCommand


检查sqlDataSource控件以解决此问题,您可以添加select和update命令来填充和更新网格视图中的行

也许这个例子对你有用

您能从这里输入您的设计(.aspx)吗?其中id\u company\u user=id\u company\u user,这里您只比较数据键名称和数据键名称,您需要传递参数进行比较。是的!它正在工作:)只需添加字符串CompanyUserId=btn.CommandArgument;SqlCommand cmd=new SqlCommand(“更新参考号注册号公司用户集ind\u active=1,其中id公司用户=@id公司用户”,conn);cmd.Parameters.AddWithValue(“@id\u company\u user”,CompanyUserId);
SqlCommand cmd = new SqlCommand("update ref_registration_company_user set ind_active=1 where id_company_user=@id_company_user", conn);
cmd.Parameters.AddWithValue("@id_company_user", id);
<asp:GridView ID="grdCompanyUsers" runat="server" DataKeyNames="id_company_user,nm_company_username" AutoGenerateColumns="false" GridLines="None" CssClass="grid" AlternatingRowStyle-BackColor="#DDE0EF" OnRowDataBound="grdCompanyUsers_DataBound" 
       OnRowCommand="myGridView_RowCommand">
     <Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <asp:LinkButton ID="btnEdit" runat="server" Font-Underline="false" CommandArgument='<%#Eval ("id_company_user")%>' CommandName="Edit">Edit</asp:LinkButton>
        </ItemTemplate>
    </asp:TemplateField>
     </Columns>
</asp:GridView>
protected void myGridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
    var id= int.Parse(e.CommandArgument);
    _connString = ConfigurationManager.AppSettings["connString"];
    using (SqlConnection conn = new SqlConnection(_connString))
    {
        conn.Open(); 
        using(SqlCommand cmd = new SqlCommand("update ref_registration_company_user set ind_active=1 where id_company_user=id_company_user", conn))
        {
           cmd.Parameters.AddWithValue("@id_company_user", id);
           cmd.ExecuteNonQuery();
        }
    }  
}