Обновление нескольких значений флажков в SQL Server с помощью NodeJs - PullRequest
0 голосов
/ 12 июня 2019

У меня есть приложение, которое использует флажки для обновления нескольких записей в данный момент времени. Я могу обновить БД с помощью одного установленного флажка. Однако возникают проблемы при обновлении, если установлены несколько флажков.

Мне удалось удалить запятые, используя регулярное выражение: ids.trim().replace(/,{1,}$/, '');. По сути, это была ошибка.

router.js

const express = require('express')
const router = express.Router()
var { conn } = require('./config')

router.post('/update', async (req, res) => {
 try{

  const pool = await conn

  var ids = req.body.ids;  // 1,
  ids = ids.trim().replace(/,{1,}$/, '');
  console.log(ids); // 1

  var dev_est = req.body.dev_est; // 20,
  dev_est = dev_est.trim().replace(/,{1,}$/, '');
  console.log(dev_est); // 20 

  const update = await pool.request()
    .input('ids', ids)
    .input('dev_est', dev_est)
    .query("UPDATE Table SET Dev_Est = @dev_est 
            WHERE Unique_ID = @ids"); 
}catch(err) {
    res.status(500)
    res.send(err.message)
}

selected.ejs

$(document).ready(function(){
     window.ids = "";
     window.dev_est = "";
 $('#btnSubmit').bind('click', function(e){
     e.preventDefault();
     createUpdatedArrays(); // This function gets the ids and the dev_est
         $.ajax({
             type: "POST",
              url: /update,
              data: {
                 ids: window.ids, 
                 dev_est: window.dev_est
                    }
              success: function(data) {
                  if (data.success) {
                      $('.msg').html('Updated');
                  }
                  else {
                      alert("error");
                  }
              }
        });
 ids = "";
 dev_est = "";

Фактический результат с одним установленным флажком

ID | 1

Dev_Est | 10

Фактический результат с несколькими отмеченными флажками

ID | 1,2,3,4

Dev_Est | 10,5,9,17

Ошибка

Как мы все можем догадаться, Conversion failed when converting the nvarchar value '1,2,3,4' to data type int.

Мой вопрос: как я могу обновить несколько записей за одну отправку? Любая помощь будет оценена. Спасибо!

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