0

我使用 nodeJs 作为后端语言,使用 sql server 作为数据库。我可以从数据库中删除整个表行,但不能删除特定行。这是我的代码...

router.delete('/student/:id', function (req, res, next) {
var connection = new Connection(config);
connection.on('connect', function(err) {
    request = new Request("DELETE FROM student where id=@id", function(err) {
        if (err) { console.log(err);}
    });

    request.addParameter('id');

    request.on('done', function(rowCount, more) {  console.log(rowCount + ' rows returned');   });
    connection.execSql(request);
    res.setHeader('Content-Type', 'application/json');
});

});

4

1 回答 1

1

这里的问题似乎是addParameter()使用不完整的参数列表调用函数。request.addParameter()期望三个参数,即。参数名称、数据类型、值。您只提供了参数名称。

尝试更改request.addParameter('id');为这样的:

var TYPES = require('tedious').TYPES; // Get the TYPES enum.
request.addParameter('id', TYPES.Int, parseInt(req.params.id)); // Assuming your id is an integer. Use proper Types enum, and conversion, if its not.

您还可以在此处参考 Microsoft 网站上的示例:https ://docs.microsoft.com/en-us/sql/connect/node-js/step-3-proof-of-concept-connecting-to-sql-using -node-js

于 2017-11-30T07:08:11.513 回答