Обновление SQL Server: с вводом html в цикле while - asp classic - PullRequest
0 голосов
/ 24 апреля 2019

Извиняюсь за язык, я поддерживаю устаревшую систему, которая полностью в ASP Classic.

У меня есть html-страница с содержимым, сгенерированным из моего SQL Server через ASP

<form method="POST"> 
<div class="container">
 <table id="table" class="table">
  <thead class="thead-dark">
  <tr>
  <th scope="col" data-field="article">Article</th>
  <th scope="col" data-field="item">QTY/th>

Затем я сгенерировал содержимое с помощью цикла while из моего дБ, который правильно отображает содержимое:

<%
 While not grs.eof
%>
<tr>
<!--SQL query from ASP-classic-->
<th><%=grs.fields("Article")%></th>
<input type="number" class="form-control" id="Quant" placeholder="<%=grs.fields("QTY")%>" name="qty"></th>

<%
 grs.movenext
wend   
%>
</tr>
</table>
</form>

Теперь над моей таблицей у меня есть кнопка

<button type="submit" value="Submit" class="btn btn-primary mb-2" name="B1">Confirm</button>

Когда мой конечный пользователь нажимает кнопку Отправить, я хочу, чтобы все значения были обновлены на моем SQL-сервере, теперь, когда этоцикл for Я не был уверен, куда пойдет запрос на обновление .. У меня пока есть это

<%
If request.form("B1")="Submit" Then
If QTY = "" Then
QTY = 0
Else
QTY = request.form("QTY")
'Update SQL'
gsSQL2 = "UPDATE dB SET quant ='" & QTY & "' WHERE ID = '" & request.querystring("ID") & "' And Article = '" & grs.fields("Article") &"'"
gobjConn.Execute(gsSQL2)

(обратите внимание, мой код правильно вставлен в мою IDE)

Теперь,когда я нажимаю «Отправить» в цикле «Пока», я получаю идентификационный номер, разделенный запятой, поэтому я знаю, что он обновляется, но я действительно не уверен, что я делаю неправильно…?

любая помощь будет принята с благодарностью.

если потребуется какая-либо дополнительная информация, дайте мне знать.

Ожидаемый вывод - отобразить некоторые коды кодов статей на веб-сайте и получить ответ от пользователя, а затем записать эти выходные данные в мой дБ SQL, где Article = Article и ID = ID.

основной запрос к сгенерированному контенту (он не соответствует моим образцам данных, но я опубликую его, если ошибка в самом запросе)

gsSQL = "SELECT ID, Article, [Item Name] as name, [Stock Quantity] as qty, Built, Boxed, Actual from dB where Store ='" & request.querystring("store") & "' order by [Category], name "
Set grs = gobjConn.Execute(gsSQL)

1 Ответ

0 голосов
/ 24 апреля 2019

С надеждой, что я вас правильно понял, у вас есть id, Quant и статья уже в базе данных, и вы хотите обновить квант, связанный с ID. В этом случае:

В цикле, который создает форму, дайте каждому номеру ввести имя с идентификатором в имени (или, если у вас только одно поле, просто укажите идентификатор в качестве имени). В вашем случае:

<input type="number" name="qty<%=rs("ID")%>">

На странице действий вы затем просматриваете все поля и обновляете соответствующим образом, либо вы делаете замену имени, чтобы получить идентификатор, либо, если вы используете только идентификатор в качестве имени поля, оно работает без замены:

For Each Item In Request.Form
            fieldName = Item 'This is the ID (with above field name: qtyID where ID is the ID from the DB.
            fieldValue = Request.Form(Item) 'This is the Quantity of that Article ID
            articleid=replace(fieldName,"qty","")

            sql="update table set qty=" + fieldValue + " where id=" + articleid
Next

Таким образом, вы пройдете все поля формы. Я также не уверен, если вам нужны и удостоверение личности и статья в пункте, где? Может ли один идентификатор иметь много статей или наоборот?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...