当前位置: 首页 > 面试题库 >

DataTableReader对于当前DataTable'TempTable'无效

霍书
2023-03-14
问题内容

每当我的代码从有效的DataTable对象创建DataTableReader时,都会出现以下错误:

“ DataTableReader对于当前DataTable’TempTable’无效。”

问题是,如果我重新启动计算机,则在不确定的时间内它可以正常工作,然后死于上面的情况。引发此错误的代码可以正常运行几个小时,然后:砰。您会收到此错误。它也不限于一行。它是使用DataTableReader的每个位置。另外,生产Web服务器上永远不会发生此错误。

这在一周的大部分时间里一直让我发疯,而且我在Google上找不到任何可以帮助的东西(因为我很肯定,这不是编码问题)。

一些技术信息:

DEV Box:Vista 32位(具有所有当前的Windows更新)Visual Studio 2008 v9.0.30729.1 SP dotNet
Framework 3.5 SP1

SQL Server:Microsoft SQL Server 2005标准版-9.00.4035.00(X64)Windows 2003
64位(具有所有当前的Windows更新)

Web服务器:Windows 2003 64位(具有所有当前的Windows更新)

任何帮助,想法或建议,将不胜感激!

更新1:

好的-现在尝试了以下操作,但没有成功:

1:重新启动2:SFC / ScanNow 3:更改SQL Server 4:尝试使用DataTableReaders的另一种方法5:清洁的解决方案

我确实发现唯一可行的方法是将代码从主要Visual
Studio实例复制并粘贴到另一个具有简单控制台应用程序的实例中。然后按预期方式工作(查询数据库并将结果放入dataTable中,在该表上创建了一个datatablereader,然后在调用.Read()之前查询了hasrows。所有这些工作。

我努力查看是什么原因导致的,因为没有代码错误-我100%肯定,因为它发布到Web服务器时运行良好。


问题答案:

我认为使用while(reader.read())可能会解决您的问题。

if (myReader.HasRows)
   while (myReader.Read())
     Console.WriteLine("\t{0}\t{1}", myReader.GetInt32(0), myReader.GetString(1));
else
   Console.WriteLine("No rows returned.");
myReader.Close();

更新:
也来自msdn:HasRows属性返回有关当前结果集的信息。如果DataTableReader包含多个结果集,则可以在调用NextResult方法之后立即检查HasRows属性的值,以确定新结果集是否包含行。

如果当前结果集中没有行,请使用HasRows属性避免要求调用DataTableReader的Read方法。

DataTableReader.HasRows属性



 类似资料:
  • 我是统一的新手,在相机上练习变换动作。我正在应用的c#脚本的代码是。 我搜索了问题,并设法得到调试器无法从堆栈顶部获取任何内容。但我无法找出它与特定代码的关系,以及实际问题存在的地方? 错误日志:解决方案-

  • 我正在遍历文档中的所有段落,并希望识别它们的缩进级别。虽然这在大多数情况下都可以使用Parageh.Format.LeftinDent,但它不适用于表中的段落。尤其是在段落本身没有缩进但表有左缩进的情况下。 有什么方法可以从选定的曲段导航到它所在的表格吗?我知道有属性“WdWithIntable”,但这对我来说还不够,因为我需要Table对象检查它的LeftIndent属性。

  • 我正在使用Repast Simphony在Eclipse中使用java构建一个模拟。模拟有一个在“地理”上下文中运行的代理类。 代理还可以在其他环境中移动,包括“网格”和“空间”。这些是2D投影,“地理”背景是GIS投影。 “网格”包和“地理”包都附带了一组对象/方法。网格包中的一个称为GridcellNgh,它在特定网格点周围创建一个摩尔邻域或“过滤器”。有人知道有一个对象可以执行与GridCe

  • 问题内容: 我想知道是否有任何方法可以指定例如明天作为DBUnit XML数据集中的日期。有时,代码逻辑对于将来的日期和过去的日期是不同的,我想测试两种情况。可以肯定地说,我可以指定类似2239年11月5日这样的名称,并确保测试可以一直进行到此日期,但是还有更优雅的方法。 在Java开发期间,我还没有遇到过这种情况,但是有一次我经历过代码逻辑在日期前一天,日期前两天以及日期前两天以上不同的情况。在

  • 我已经创建了一个需要重用的对象池。每次试图返回对象时,我都会得到一个错误:“返回的对象当前不属于此池” 我得到这个错误: