如何操作 Database.ExecuteSqlCommand() return 值?
How to manipulate Database.ExecuteSqlCommand() return value?
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 进行查询,它 returns 15。每次我在代码中执行它时,它 returns -1 .
MSDN API 州:
Return Value
Type: System.Int32
The result returned by the database after executing the command.
描述的很含糊,我觉得我用的应该是可以的。如何将查询操作为 return 15,或者这是不可能的?如果没有,有没有人有什么建议?
执行return数据的命令时,如'SELECT'语句,应考虑使用SqlQuery方法。 ExecuteSqlQuery 通常被视为 DDL/DML 命令,用于像 'UPDATE' 这样没有 return 数据的语句。
此外,您应该始终对这样的查询进行参数化。正如所写,它容易受到 SQL 注入攻击。
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 进行查询,它 returns 15。每次我在代码中执行它时,它 returns -1 .
MSDN API 州:
Return Value
Type: System.Int32
The result returned by the database after executing the command.
描述的很含糊,我觉得我用的应该是可以的。如何将查询操作为 return 15,或者这是不可能的?如果没有,有没有人有什么建议?
执行return数据的命令时,如'SELECT'语句,应考虑使用SqlQuery方法。 ExecuteSqlQuery 通常被视为 DDL/DML 命令,用于像 'UPDATE' 这样没有 return 数据的语句。
此外,您应该始终对这样的查询进行参数化。正如所写,它容易受到 SQL 注入攻击。