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,或者这是不可能的?如果没有,有人有任何建议吗?
答案 0 :(得分:1)
执行返回数据的命令(例如'SELECT'语句)时,应考虑使用SqlQuery方法。 ExecuteSqlQuery通常被视为DDL / DML命令,用于不返回数据的'UPDATE'之类的语句。
此外,您应始终参数化此类查询。如上所述,它容易受到SQL注入攻击。