Как я могу получить обновление запаса из текстового поля 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[^]