EF另一个 SqlParameterCollection 中已包含 SqlParameter。
代码:
SqlParameter[] commandParameters = new SqlParameter[]{
new SqlParameter("@CultID",filters.ParentID)
}; var result = db.Database.SqlQuery<FM_PlantSolutions>(@"select s.* ,u.UserName as PrincipalName,
isnull(ue.UserName,'无') as ExaminerName ,i.BaseName AS InputsTypeName
from [v_PlantSolutionsRelation] as r
inner join dbo.FM_Solutions as s on r.SoluID = s.SoluID
inner join dbo.U_UserInfo as u on s.Principal= u.UserID
left join dbo.U_UserInfo as ue on s.Examiner = ue.UserID
inner join dbo.B_BaseInfo as i on s.InputsType=i.BaseValue
where r.CultID = CultID and i.ClassID = 21 ", commandParameters);
var q= result.OrderBy(t => t.SoluName).Skip((filters.page - 1) * filters.rows).Take(filters.rows); return new
{
rows = q.ToList(),
records = result.Count(), page = filters.page,
pagesize = filters.rows
};
查询报表的时候需要通过两次查询取出数据。
第一次,用count(*)查出总数; 第二次,用rownumber分页取出想要的页内容; 然而,无论怎么修改,总是报错:另一个 SqlParameterCollection 中已包含 SqlParameter。
参照了网友的做法:https://www.cnblogs.com/jhli/p/6898650.html 但是并没有解决问题,分析报错的原理,大概是这段代码执行了两次,传入了两次同样的参数,所以索性将.ToList()往前放,直接将所有数据加载到内存中,再进行分页,问题解决了,修改后的代码
SqlParameter[] commandParameters = new SqlParameter[]{
new SqlParameter("@CultID",filters.ParentID)
}; var result = db.Database.SqlQuery<FM_PlantSolutions>(@"select s.* ,u.UserName as PrincipalName,
isnull(ue.UserName,'无') as ExaminerName ,i.BaseName AS InputsTypeName
from [v_PlantSolutionsRelation] as r
inner join dbo.FM_Solutions as s on r.SoluID = s.SoluID
inner join dbo.U_UserInfo as u on s.Principal= u.UserID
left join dbo.U_UserInfo as ue on s.Examiner = ue.UserID
inner join dbo.B_BaseInfo as i on s.InputsType=i.BaseValue
where r.CultID = CultID and i.ClassID = 21 ", commandParameters).ToList();
var q= result.OrderBy(t => t.SoluName).Skip((filters.page - ) * filters.rows).Take(filters.rows); return new
{
rows = q,
records = result.Count(), page = filters.page,
pagesize = filters.rows
};
}
EF另一个 SqlParameterCollection 中已包含 SqlParameter。的更多相关文章
- 【EF框架】另一个 SqlParameterCollection 中已包含 SqlParameter。
查询报表的时候需要通过两次查询取出数据. 第一次,用count(*)查出总数: 第二次,用rownumber分页取出想要的页内容: 为了防止sql注入,使用SqlParameter来传递参数 var ...
- 另一个SqlParameterCollection中已包含SqlParameter
一般情况下,我们定义的一个SqlParameter参数数组,如: SqlParameter[] parms = { new SqlParamete ...
- 另一个 SqlParameterCollection 中已包含 SqlParameter
出处:http://www.cnblogs.com/OldYongs/archive/2011/03/12/1982021.html#2742742 一般情况下,我们定义的一个SqlParameter ...
- 另一个SqlParameterCollection中已包含SqlParameter(转)
一般情况下,我们定义的一个SqlParameter参数数组,如: SqlParameter[] parms = { new SqlParamete ...
- Ibatis.net总是报:【ExecuteStoreCommand SqlParameterCollection 中已包含 SqlParameter】(转)
今天很奇怪调用EF的ExecuteStoreCommand 出现了个这样的错误,怎么也调试不过,痛定思痛 原来 command被连着调用了而没有销毁掉 public static DataTabl ...
- 另一个 OleDbParameterCollection 中已包含 OleDbParameter 错误分析及解决办法
程序非常简单,就是从一个表中取出一个符合要求的数据,如果取到,就把该数据对应的计数加1.也就是执行不同的两个SQL语句操作同一个表,并且这两个SQL的参数是一样的.在一个函数里完成这个调用.执行第二个 ...
- 一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
主要掌握String中的方法 char[] toCharArray() 将此字符串转换为一个新的字符数组. int indexOf(String str) 返回 ...
- 在SQLSERVER中如何检测一个字符串中是否包含另一个字符串
--当charindex返回值大于0时则包含 为0不包含 select CHARINDEX('456','123456') SQL语句使用CHARINDEX函数,来测试一个字符串中是否包含另一个字 ...
- Java 正则判断一个字符串中是否包含中文
使用正则判断一个字符串中是否包含中文或者中文字符 代码实现如下: import java.util.regex.Matcher; import java.util.regex.Pattern; /** ...
随机推荐
- [UER #1] DZY Loves Graph
题目描述 开始有 \(n\) 个点,现在对这 \(n\) 个点进行了 \(m\) 次操作,对于第 \(i\) 个操作(从 \(1\) 开始编号)有可能的三种情况: \(Add\) a b: 表示在 \ ...
- Luogu P4823 [TJOI2013]拯救小矮人
题目 \(n^2\)的dp已经成为辣鸡做法了,%%%wch. 首先一个结论:\(a+b\)小的人在上. 这个东西我们有三种方法解决证明: 1.感性理解,\(a+b\)越大的人逃生能力越强,放在下面就越 ...
- windows 2008 创建域服务器问题 账户密码不符合要求
windows 2008新建域时,本地administrator账户将成域Administrator账户.无法新建域,因为本地administrator账户密码不符合要求.*解决办法:很多人都会想到在 ...
- BZOJ 4141 [Thu Summer Camp 2013]魔塔
权限题qwq 以下设值域大小为\(m\) 先考虑枚举攻击力,因为首先攻击力决定每个怪物的攻击次数,然后对于每个怪物,攻击次数为\(\lceil\frac{hp_i}{ATK-def_i}\rceil\ ...
- python中逐行打印
方法一:readline函数 f = open("./code.txt") # 返回一个文件对象 line = f.readline() # 调用文件的 readline()方法 ...
- mac osx sed 命令
$ sed -i "s/devicedemo/device/g" `grep devicedemo -rl ./` sed: 1: ".//.coveragerc&quo ...
- 记录-- vue+element树节点的标注
html(背景:状态标注3钟颜色红黄绿对应0,1,2,) <el-tree @check="slclasscheck" v-if="treeShow" : ...
- 从POST与GET、REQUEST响应的php和asp写法对比谈数据过滤
<!DOCTYPE html><!--To change this license header, choose License Headers in Project Propert ...
- java 约瑟夫问题
题目: 给定一个数组及数组的长度,另外给定一个数m,从数组的第一个元素出发,数到第m个元素出列(如果到最后则回到第一个元素).出列元素的值作为m的新值,从出列元素的下一元素继续开始数下去,直到所有元素 ...
- Haproxy学习总结
一.Haproxy介绍 1.实现了一种事件驱动,单一进程模型,支持数万计的并发连接,用于为tcp和http应用程序提供高可用,负载均衡和代理服务的解决方案,尤其适用于高负载且需要持久连接或7层处理机制 ...