问题标签 [idatareader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1797 浏览

c# - IDataReader 和“HasColumn”,最好的方法?

我已经看到了两种常见的方法来检查 IDataReader 中是否存在列:

或者:

就个人而言,我使用了第二个,因为我讨厌为此使用异常。

但是,在大型数据集上,我相信 RowFilter 可能必须对每列进行一次表扫描,这可能非常慢。

想法?

0 投票
4 回答
10583 浏览

.net - 如何将 DataTable 转换为 IDatareader?

我们都知道 DataReader 比 DataTables 更快,因为 DataReader 用于构建 DataTable。

因此,鉴于我已经有一个 DataTable....为什么要将其转换为 DataReader?

好吧,我正在创建一个名为 IDataProvider 的内部接口。此接口旨在在本地和作为 WebService 实现。该接口将有一个方法“Getdata”,它接受一些标准信息并返回一些数据。

由于 DataReader 是最快的数据检索机制,因此我希望将其用作“GetData”方法的结果类型。但是,我们也知道 DataReader 不可序列化,因此无法通过 Web 服务在 Web 上传输...

在网络的情况下,我会让本地代理类将数据请求为 DataTable,然后在本地将其转换为 DataReader。

通过这种方式,本地应用程序不需要知道(或关心)它是在本地还是远程访问数据。

但是,为了做到这一点,我需要知道...如何将 DataReader 包装在预先存在的 DataTable 周围?

更新:我的业务逻辑不会保留在 Web 服务中,因为使用 Web 服务的 DataProvider 可以切换为不使用的。因此,businessLogic 将保存在客户端应用程序中。

FWIW我正在使用.Net 3.5 SP1

0 投票
1 回答
494 浏览

c# - IDataReader.GetName(i) 是否适用于空数据读取器?

我希望在空数据读取器的情况下输出具有空值的字段名称..即

产品:- 价格:-

那么,当 IDataReader.GetName(i) 和 IDataReader.FieldCount 没有结果时可以安全使用吗?

0 投票
3 回答
902 浏览

asp.net - 设置为数据源时,IDataReader 是否会自动关闭?

当您将活动的 IDataReader 对象分配给 Repeater、GridView 等时,它会在 DataBind 方法调用完成后自动关闭,还是我们仍需要自己显式关闭它?

0 投票
4 回答
4194 浏览

c# - 从 DataReader 访问 DateTime 字段时出现 MySqlConversionException

我在 MySql 上有一个 C# 应用程序,使用MySQL Connector;我正在尝试发出 DataReader 请求,查询执行良好,但是,当尝试访问 DateTime 字段时,我得到 MySqlConversionException {"Unable to convert MySQL date/time value to System.DateTime"}

这是原型

有什么建议么?提前致谢

0 投票
1 回答
225 浏览

idatareader - idatareader 问题

为什么我的 idatareader 出错.....?

我想从这里的数据库中检索图像sFieldName是数据库列名称......它告诉我指定的转换无效。消息......我在做什么?在 C# 窗口 vs05 上工作......

sFieldName是一个字符串 ....它是数据库的列名,列类型是image 我的数据库列名是“BoardImage”

sFieldName="BoardImage"

这里oBoardDetail是一个类对象,BoardImage是一个类属性类型Image

0 投票
1 回答
840 浏览

c# - phxsoftware System.Data.SQLite DbDataReader 行为不端

以下帖子与 phxsoftware ( http://sqlite.phxsoftware.com )的 System.Data.SQLite 数据提供程序有关

我对 DbDataReader 的 Read 方法和/或 Visual Studio 2008 有疑问(也可能是问题)。在许多示例中,我看到如下内容(我知道这段代码没有多大意义……但它提供了一个目的):

第一个问题 - 我从这个例子中不明白的是我第一次通过调用 reader.Read() 在 while 循环中丢失数据吗?例如,如果读取器具有值 (3,5,7,9),则从 cmd.ExecuteReader() 返回的读取器最初应该指向 3,对吗?reader.Read() 然后在 while 循环内的后续调用中移动到 5、7 和 9。但是,因为 reader.Read() 在第一个“ltemp += ...”行之前被调用,我是否跳过了第一个结果 (3)?

第二个问题-(我开始认为这可能是VS中的一个错误)如果我在“if(null!= ...”行的断点处停止时在调试器中单步执行这组代码,我可以清楚地看到 mu 将鼠标悬停在弹出窗口中并向下钻取,即阅读器分配了多个行数据值。但是,如果我关闭该弹出信息,然后尝试将其恢复,当我向下钻取时,我现在看到了该行“枚举没有结果”之前有明确的数据。

谁能解释这种行为?

0 投票
2 回答
201 浏览

c# - 使用 IDataReader 解决数据库差异的最佳实践

我有一个简单的值对象,我用来自 IDataReader 的数据填充它(可能是对 Oracle 或 MS SQL 数据库的查询结果)。该对象的工厂方法如下所示:

然后我遇到了一个与 Oracle 和 MS SQL 数据库用于该特定列的数据类型差异有关的问题:在 Oracle 中,数据类型是数字,而对于 MS SQL,使用的数据类型是 smallint。

现在,虽然我可以通过执行以下操作来“解决”这个问题:

有没有更好或更优雅的方法来做到这一点?

0 投票
1 回答
1895 浏览

c# - 在调用 ExecuteReader 时从基本 DAL 类中处理 SqlConnection

我被分配了一个项目,其中 DAL 由一个基类组成,该基类具有返回 IDataReader、一个对象(int、字符串等)或一个数据集的函数。还存在一个 ExecuteNonQuery 函数。此 DAL 仅访问 USP (SQL Server),并使用 MS 的 SqlHelper 来执行查询。这是来自基础的两个示例函数:

其他类派生自此基类,创建特定于任务的 DAL 类,例如:

然后是调用 DAL 函数的 BLL 类,并根据从 IDataReader 对象读取的数据用数据填充对象(例如 Order 对象):

我的问题是——如果你看一下取自 BaseDal 的代码,你会注意到只有 ExecuteScalar 实际上终止了 SqlConnection 对象(using 语句)——我的所有函数都是这种情况。使用 ExecuteReader 我不能这样做,因为我正在返回一个打开的 SqlDataReader 对象并关闭连接将使阅读器无效。我有从 DAL 获取和使用 IDataReader 的所有代码都使用 using 语句,但是 SqlConnection 对象是否也在被释放,或者它是否在稍后阶段被 GC,通过不尽快释放连接池而损害连接池? 如果是这样,如何治疗?

此外,是否有比上述方法更好的方法来创建 DAL?我不太关心与数据存储无关的 DAL,我们只需要一个可靠且易于维护的 DAL,它可以从多个线程获取多个并发连接。

提前感谢您对此的任何帮助。

0 投票
5 回答
444 浏览

c# - 提高 DAL 性能

我目前填充业务对象的方式是使用类似于下面的代码段的东西。

有没有人对如何提高这样的性能有任何建议?请记住,对于某些类型,PopulateFromReader 包含更多数据库查找,以便完全填充对象。