我正在尝试从sql server存储过程返回数据,然后通过传递列名来获取单个数据。出于某种原因,当我传递列名时,我得到了未定义。这是我到目前为止所尝试的,我可能做错了什么?
答案 0 :(得分:0)
execute
回调的签名存在问题。它应为function(result, returnValue)
,其结果为recordSet
var updateMember = function( Country, BankID) {
new sql.Request()
.input('Country', sql.VarChar(50), Country)
.input('BankID', sql.VarChar(50), BankID)
.execute('p_GetTransactionsStats').then(function(result, returnValue) {
console.dir(result); // it should be [{},{}]
for (var i = 0; i < result.length; i++) {
console.log("Merchantname :-" + result[i].MERCHANTNAME);
console.log("Bankname :-" + result[i].BankName);
}
}).catch(function(err) {
console.dir(err);
});
};
第二个解决方案
如果不改变promise回调方法,你可以调整从结果中获取价值的方式。
var updateMember = function( Country, BankID) {
new sql.Request()
.input('Country', sql.VarChar(50), Country)
.input('BankID', sql.VarChar(50), BankID)
.execute('p_GetTransactionsStats').then(function(result) {
console.dir(result); // it should be [[{},{}], returnValue:0]
var records = result[0];
for (var i = 0; i < records.length; i++) {
console.log("Merchantname :-" + records[i].MERCHANTNAME);
console.log("Bankname :-" + records[i].BankName);
}
}).catch(function(err) {
console.dir(err);
});
};
希望它对你有所帮助。
答案 1 :(得分:0)
您的结果是数组或数组 因此,您需要访问以下值:
for (var i = 0; i < result.length; i++) {
console.log("Merchantname :-" + result[0][i].MERCHANTNAME);
console.log("Bankname :-" + result[0][i].BankName);
}