- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有以下代码。
// Get total row count and build Pagination object
var countQuery = ArticleServerContext.Database.SqlQuery<int>("GetFullTextSearchCount @SearchTerm",
new SqlParameter("@SearchTerm", fullTextQuery));
Pagination pagination = new Pagination(countQuery.Single(), page ?? 1);
// Get search results for current page
var resultsQuery = ArticleServerContext.Database.SqlQuery<ArticleSummary>("GetFullTextSearchResults @SearchTerm, @SkipRows, @TakeRows",
new SqlParameter("@SearchTerm", fullTextQuery),
new SqlParameter("@SkipRows", pagination.SkippedRows),
new SqlParameter("@TakeRows", pagination.RowsPerPage));
// Build model
SearchResultsModel model = new SearchResultsModel
{
SearchTerm = searchTerm.Trim(),
Pagination = pagination,
Results = resultsQuery.ToList() // <=== Here's where the error happens
};
当我尝试枚举 resultsQuery
时,我收到以下错误消息。
The SqlParameter is already contained by another SqlParameterCollection.
此错误消息似乎很清楚,但我看不到我在哪里将 SqlParameter
添加到多个 anything。我唯一能想到的是两个调用的第一个参数是相同的。 C# 能否以某种方式组合它们?无论哪种方式,我都需要它们包含相同的数据。
谁能看到这里发生了什么?
编辑:
抱歉,这是一个调试问题。我有另一个问题阻止了我预期的结果。但是当我进入调试器并单步执行我的代码时,我得到了上面提到的错误。
似乎代码是使用有问题的 SqlParameter
执行的,然后我尝试检查查询的内容,查询再次使用相同的 SqlParameter
运行, 那就是导致错误的原因。
不幸的是,现在我有赏金,我不能删除这个问题。
最佳答案
当我发布这个问题时,我并没有很好地理解发生了什么。进一步研究后发现:
另一个问题导致我的程序无法显示我预期的(任何)结果。
使用 Visual Studio 调试器,我在此代码中设置了一个断点。当我逐步执行时,正在执行查询。但是当我试图检查数据时,这导致再次执行查询。正是这种双重执行导致了我报告的错误。事实上,代码正常运行时并没有出现这个错误。
感谢所有花时间看这个问题的人。
关于c# - SqlParameter 已包含在另一个 SqlParameterCollection 中,但我不知道如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37912006/
我在 catch block 中抛出了一个 The SqlParameter is already contained by another SqlParameterCollection 异常。 我觉
我想确切地知道我们是如何在 C# .NET 4.0 表单应用程序上做这些事情的: 声明 SqlCeParameterCollection 对象 向集合添加参数 将集合添加到命令中 以下是我当前代码的示
我正在尝试创建一个 SqlParameterCollection,但在 sp.Add() 方法中添加一些 SqlParameter 时出错。 请帮助我如何添加参数以及如何将它传递给我的另一个函数,我在
我需要访问父类的 ApplicationID 属性才能运行 Nhibernate 查询。在 NUnit 中为此查询运行测试会导致它失败,如下所示:“BusinessObjects.Integratio
我想为我的存储过程提供一个输出参数。此输出过程返回 byte[]。我该怎么做呢? 如果我执行以下操作: command.Parameters.Add(new SqlParameter("@Bytes"
有一种方法可以检查 SqlParameterCollection 中的 ReturnValue 参数,如果存在则检查该值是否违反约束。 public static void VerifyU
我正在尝试模拟数据库操作。我在模拟 SqlParameterCollection 时遇到问题。我尝试创建将返回 DbParameterCollection 的 virtual 方法,但随后我失去了 S
在我的一个项目中我遇到了这个错误: System.IndexOutOfRangeException: SqlParameterCollection does not contain SqlParame
我有以下代码。 // Get total row count and build Pagination object var countQuery = ArticleServerContext.Dat
这个异常(exception): 此 SqlParameterCollection 的索引 n 无效,Count= 通常指向重复的映射信息(参见 Stack Overflow + Google)。我很
我在Windows服务中使用2个线程(来自同一类)。我总是收到相同的错误消息: "The SqlParameter is already contained by another SqlParamet
我目前有一个连接类来处理我所有的数据库连接。我想要做的是在一页上构建一个 SqlParameterCollection 对象,然后将该对象传递给我的连接类。是否有可能做到这一点?我没有收到任何编译错误
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
为了解决这个问题,我绞尽脑汁好几个小时了,希望有人能帮我解决这个问题。 我在 C# 应用程序中插入数据库。作为一名优秀的编码员,我正在参数化我的查询。 相关代码为: int contactId = -
当使用如下所示的 using() {} (sic) block 时,并假设 cmd1 没有超出第一个 using 的范围() {} block ,为什么第二个 block 要抛出消息异常 The Sq
我有一个这样的测试数据库设计: 以下是伪代码: //BhillHeader public class BillHeader { public BillHeader() {
NHibernate 抛出异常:“此 SqlParameterCollection 的索引 n 无效,Count=n。”当我尝试保存 Meter 对象时。问题出在 CurrentReading 属性上
我创建了一个方法,它将抛出的任何异常插入到 MySql 服务器上“ExceptionLog”的表中。 异常日志表格式 idExceptionLog int (AI)用户(varchar 45)错误消息
我有以下代码: SqlParameter invidParam = new SqlParameter("@invid",obj.INVID); SqlParameter prodParam = new
private void txtName_KeyDown(object sender, KeyEventArgs e) { SqlDataAdapter DA = new SqlDataAda
我是一名优秀的程序员,十分优秀!