Naqash Younis Ответов: 0

Как я могу получить обновление запаса из текстового поля gridview


я хочу обновить свой запас в asp.net использование Vb.net в базе данных sql и способе обновления ее значения update Datagridview из
DataField

<asp:BoundField DataField="Price" HeaderText="Price" ItemStyle-CssClass="price" ItemStyle-Width="10%"/>

Но не обновление из поля текстового поля в Gridview
<asp:TemplateField HeaderText="Quantity" ItemStyle-Width="10%">
            <ItemTemplate>
                <asp:TextBox ID="txtQuantity" runat="server"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>


Что я уже пробовал:

Код проектного представления
 <asp:GridView ID="GridView1" runat="server" CssClass="table table-responsive table-striped footable" PageSize="20" Style="max-width: 100%" AutoGenerateColumns="false" AutoGenerateDeleteButton="True" OnRowEditing="OnRowEditing" OnRowCancelingEdit="OnRowCancelingEdit" AutoGenerateEditButton="True">
    <Columns>
         <asp:BoundField DataField="ID" HeaderText="ID" ItemStyle-Width="10%"/>
        <asp:BoundField DataField="Item" HeaderText="Item" ItemStyle-Width="50%"/>
        <asp:BoundField DataField="Price" HeaderText="Price" ItemStyle-CssClass="price" ItemStyle-Width="10%"/>

        <asp:TemplateField HeaderText="Quantity" ItemStyle-Width="10%">
            <ItemTemplate>
                <asp:TextBox ID="txtQuantity" runat="server"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Total" ItemStyle-Width="20%">
            <ItemTemplate>
                <asp:Label ID="lblTotal" runat="server" Text="0"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>


Кодовая Сторона

Private Sub updatestock()
        Dim con As SqlConnection
        con = New SqlConnection(ConfigurationManager.ConnectionStrings("constrng").ConnectionString)

        Dim strQ As String = String.Empty
        Try

            For Each Isold As GridViewRow In GridView1.Rows
                If Isold.Cells(0).Text IsNot Nothing Then
                    Dim pID As String
                    Dim Inveupdate = New SqlCommand(strQ, con)
                    pID = Isold.Cells(0).Text.ToString()
                    Inveupdate.CommandText = "UPDATE Stock SET quanitity = quanitity + '" & Isold.Cells(4).Text.ToString() & "' WHERE Productid =  '812003751810'"
                    Inveupdate.CommandType = CommandType.Text
                    con.Open()
                    Inveupdate.ExecuteNonQuery()
                    Inveupdate.Parameters.Clear()
                    Inveupdate.Dispose()
                    con.Close()
                End If
            Next

        Catch ex As Exception

        End Try

    End Sub

F-ES Sitecore

Вы не ссылаетесь на элемент управления txtQuantity в своей функции updatestock. Google, как использовать FindControl с GridView для получения ссылки на элемент управления.

Richard Deeming

Inveupdate.CommandText = "UPDATE Stock SET quanitity = quanitity + '" & Isold.Cells(4).Text.ToString() & "' WHERE Productid =  '812003751810'"

Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.

Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]

0 Ответов