'//问题:无法从表中获取数据。
//我的代码
const sql = require('mssql/msnodesqlv8');
const poolPromise = new sql.ConnectionPool({
driver: 'msnodesqlv8',
server: "test.database.windows.net",
user: "username",
password: "password",
database: 'database',
port: 1433,
})
.connect()
.then((pool: any) => {
console.log('Connected to MSSQL')
return pool
})
.catch((err: any) => console.log('Database Connection Failed! Bad Config: ', err))
;
describe('any test', () => {
it('verification', async () => {
try
{
const pool = await poolPromise;
const result = await pool.request()
.query('select * from table where username = "Protractor"');
console.log(result);
}
catch(err)
{
console.log(err);
}
});
});
发生错误:
[13:20:25] I /启动器-运行1个WebDriver实例
[13:20:25]我/托管-在http:// localhost:4444 / wd / hub上使用Selenium服务器
已开始
连接到MSSQL
{RequestError:无效的列名称'Protractor'。
在handleError时(C:\ Users \ automation \ node_modules \ mssql \ lib \ msnodesqlv8 \ request.js:258:21)
在StreamEvents.emit(events.js:189:13)
在errors.forEach.err(C:\ Users \ automation \ node_modules \ msnodesqlv8 \ lib \ reader.js:37:20)
在Array.forEach()
在routeStatementError(C:\ Users \ automation \ node_modules \ msnodesqlv8 \ lib \ reader.js:30:14)
在invokeObject.end(C:\ Users \ automation \ node_modules \ msnodesqlv8 \ lib \ reader.js:209:11)
在freeStatement上(C:\ Users \ automation \ node_modules \ msnodesqlv8 \ lib \ driver.js:183:13)
在cppDriver.freeStatement(C:\ Users \ automation \ node_modules \ msnodesqlv8 \ lib \ driver.js:163:13)originalError:
{错误:[Microsoft] [SQL Server本机客户端11.0] [SQL Server]无效的列名“量角器”。 sqlstate:“ 42S22”,代码:207},
名称:“ RequestError”,
编号:207,
状态:“ 42S22”}
答案 0 :(得分:1)
双引号和单引号在T-SQL中不可互换。
尝试以下方法:
const result = await pool.request()
.query(`select * from table where username = 'Protractor'`);
或者这个:
const result = await pool.request()
.query('select * from table where username = \'Protractor\'');