SQL Server 预编译执行SQLs

问题描述:

MVC5项目,利用执行sql的方式获取数据,但是在利用预编译执行的时候报错了,字段XXXwhich was not supplied.

其实就是这个参数传了个null导致的。在传参数之前做个判断,如果为null就赋值为空串即可。

if (string.IsNullOrEmpty(name))
{
  name = string.Empty;
}

String sql = "select a.Id,a.UserName,a.TrueName,ISNULL(b.OTM, '0') as Flag from SysUser a left join FIX_MatchingModel b on cast(a.Id as varchar) = b.OTM and b.Id = @matchingId Where a.DepId = @DepId order by b.OTM desc";
SqlParameter[] sqlParameters = { new SqlParameter { ParameterName = "matchingId", Value = matchingId }, new SqlParameter { ParameterName = "DepId", Value = depId } };
DbContexts DbContext = new DbContexts();
return DbContext.Database.SqlQuery<UserView>(sql, sqlParameters).ToList();

原文地址:https://www.cnblogs.com/Rexcnblog/p/6528201.html