2
private int GetId(int userId, int companyId){
    string query = String.Format("SELECT Id FROM MyTable WHERE UserId = {0} AND CompanyId = {1}", userId, companyId);
    return _db.ExecuteSqlCommand(query);
}

我可以通过 Microsoft 的 SQL Management Studio 运行查询,它返回 15。每次我在代码中执行它时,它都会返回 -1。

MSDN API状态:

返回值

类型:System.Int32

执行命令后数据库返回的结果。

描述非常模糊,我认为我如何使用它应该可以工作。如何操作查询以返回 15,或者这是不可能的?如果没有,有人有什么建议吗?

4

1 回答 1

1

在执行返回数据的命令时,例如“SELECT”语句,您应该考虑使用 SqlQuery 方法。ExecuteSqlQuery 通常被视为用于不返回数据的“UPDATE”等语句的 DDL/DML 命令。

此外,您应该始终参数化这样的查询。如前所述,它容易受到 SQL 注入攻击。

于 2015-07-07T15:20:30.940 回答