我使用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');
});
});
答案 0 :(得分: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