如何从Gridview中更新SQL中的数据,从ASP中的一行移动到另一行,C#

时间:2016-11-09 08:36:33

标签: c# asp.net gridview

我有一个网格视图如下, GridView

当焦点转移到下一行时,我想根据文本框中输入的文本更新表格。我怎样才能做到这一点?

我已经完成了页面索引更改中的编码,我对Web编程有点困惑,如何在ASP中使用C#实现这一点。

下面是我为页面索引更改而编写的代码..

ASP

 <asp:GridView ID="GVItems" runat="server"
                            CssClass="table table-hover table-striped table-bordered" GridLines="None"
                            AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True" OnPageIndexChanging="GVItems_PageIndexChanging" OnRowEditing="GVItems_RowEditing" OnSelectedIndexChanging="GVItems_SelectedIndexChanging">
                            <AlternatingRowStyle BackColor="#CCCCCC" BorderStyle="None" />
                            <Columns>
                                 <asp:BoundField DataField="UNIQ" HeaderText="UNIQ"  />
                                <asp:BoundField DataField="store" HeaderText="STORE" />
                                <asp:BoundField DataField="MQty" HeaderText="Modified Qty" />
                                <asp:TemplateField HeaderText="Edit MQty" >
                                    <ItemTemplate >
                                        <asp:TextBox ID="txtUpdatedQty" runat="server" Text="" Width="40" ></asp:TextBox>
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                            <RowStyle CssClass="cursor-pointer" />
                            <PagerStyle HorizontalAlign="Right" CssClass="pagination-ys" />
                        </asp:GridView>

C#

protected void GVItems_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        UpdateRecvQty();
        GVItems.PageIndex = e.NewPageIndex;
        this.BindGrid();
    }
private void UpdateRecvQty()
    {

        foreach (GridViewRow row in GVItems.Rows)
        {
            if (((TextBox)row.FindControl("txtUpdatedQty")).Text != "")
            {
                uniqID = row.Cells[0].Text;
                qty = ((TextBox)row.FindControl("txtUpdatedQty")).Text;
                SqlConnection con = new SqlConnection(cs);
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                con.Open();

                string query = "UPDATE [dbo].[Tbl_Order]  SET MQty = @qty where UNIQU=@uniqID";
                cmd.CommandText = query;
                cmd.Parameters.AddWithValue("@qty", qty);
                cmd.Parameters.AddWithValue("@uniqID", uniqID);
                cmd.ExecuteNonQuery();
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

为什么不使用文本框的textChanged事件并在每次用户编辑文本框时更新值而不是在结尾处循环?

相关问题