c# - 如何操作Database.ExecuteSqlCommand()返回值?

标签 c# sql database entity-framework executequery

<分区>

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 状态:

Return Value

Type: System.Int32

The result returned by the database after executing the command.

描述很含糊,我想我的使用方式应该是可行的。我怎样才能操纵查询返回 15,或者这是不可能的?如果没有,有人有什么建议吗?

最佳答案

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

此外,您应该始终对这样的查询进行参数化。如所写,它容易受到 SQL 注入(inject)攻击。

关于c# - 如何操作Database.ExecuteSqlCommand()返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31272667/

相关文章:

MySQL 和查询性能

mysql - 我如何设计一个可以连接到许多不同表的本地化内容表(关系需要是通用的......)

c# - 如何在 C# 中将 List<char> 转换为 List<string>?

c# - 序列化代码导致未处理的异常

c# - Azure 函数忽略的functions.json graphToken 绑定(bind)

c++ - QSqlQuery 与索引一起使用

php - 选择语句无法正常工作

mysql - 从多列中选择但检索列名称

c# - 从 F# 使用 UWP 应用服务

sql - super 慢的 MySQL - 需要帮助!