尝试从表中获取数据时出错

时间:2020-10-03 08:31:40

标签: javascript sql sql-server typescript

'//问题:无法从表中获取数据。

//我的代码

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”}

1 个答案:

答案 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\'');