问题标签 [datareader]

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 投票
1 回答
2272 浏览

c# - 如何轻松地将 DbDataReader 对象转换为有用的东西?

我正在使用实体框架 EntityConnection 手动调用存储过程,如下所示:

这样做的原因是实体框架不容易支持不直接映射到表或视图的实体。我找到了这篇文章 ( http://dotnet.dzone.com/news/mapping-stored-procedure ),但它需要编辑 XML,我想避免这种情况。

就我而言,我只是在运行一个使用 LEFT JOIN 连接两个表的查询。这样做的原因是因为我试图将结果绑定到 Telerik RadGrid,它不支持分层数据导出,但似乎支持分组数据导出。

问题是,如何将 DbDataReader 对象转换为可以绑定到 RadGrid 的有用对象?我一直在我的 DAL 方法中传递单个对象或 IQueryable 对象。有任何想法吗?提前致谢?

编辑:

我只需要数据。之后我不需要做任何插入、更新、删除。它是一个只读视图。

0 投票
3 回答
1356 浏览

.net - 来自 IDataReader 的 .NET 对象水合会降低性能

我正在尝试对约 400 个业务对象的列表进行水合,当它需要对字符串进行水合时,性能会变得非常慢。为 400 个物体补水需要超过 20 秒。

编辑

我们使用 MySQL 5.1 和 dotConnect for MySQL v5.0.12 作为数据提供者http://www.devart.com/dotconnect/mysql/

我做了一些基准测试以将其缩小到导致问题的字符串类型。我开始测量从记录 2 到 n 的时间,以忽略加载其他程序集可能占用的时间。

以下代码在 0ms 内水合 1 个对象

这也可以在 0 毫秒内为 1 个对象补水

但是,一旦我将 datareader 对象转换为字符串,平均需要 53ms

我还尝试为 2 根琴弦补水并扼杀它并没有像 1 根琴弦那样吹出性能?以下仅需要平均 57ms 来水化 1 个对象

我知道很多人使用上述语法来水合业务对象。有没有更有效/更快的方法来做到这一点?

编辑 刚刚做了另一个测试,它是在一个字符串上进行直接投射,它产生相同的慢速:( 53ms 只是为了做投射。

0 投票
3 回答
344 浏览

.net - 如何:使用不计算记录的数据阅读器

人们似乎已经失去了使用现代语言生成旧式 COBOL/RPG 报告的能力。

我经常看到使用依赖于记录计数的 DataReaders 的代码。因此,在不需要时会出现一个额外的聚合查询。

在大多数情况下,此代码需要知道是否有另一条记录可用。换句话说,告诉我是否在最后一条记录,以便我可以显示记录分隔符。

一个简单的算法如下:

当算法的简单更改就足够时,请不要使用 COUNT(*) 或数据表/数据集。

0 投票
5 回答
8708 浏览

asp.net-mvc - 在没有 ORM 的情况下使用 ASP.NET MVC

在我的 ASP MVC 应用程序中,我使用标准 SQL(而不是 Linq to SQL 或其他 ORM)来查询我的数据库。

我想将数据库结果传递给我的视图并在我的视图中迭代结果。但我不知道该怎么做。我见过的每个示例都传递了一些字符串或使用 L2S。我想传递嵌套哈希表之类的东西,但我唯一能想到的是将 SqlDataReader 对象传递给视图,但这听起来是个非常糟糕的主意。

我将如何将来自标准 SQL 查询的数据库结果显示到我的视图中?我真的很想使用 Linq 或其他 ORM,但要求我们不要(不要问我为什么,我不明白)。我在VB中这样做。我会尽力转换提供的任何 C# 示例。

0 投票
5 回答
5119 浏览

c# - 存储过程输出参数+选择不传回输出参数

我有一个存储过程,它返回我使用 GetReader 调用的两个记录集。我迭代第一个,调用 IDataReader.NextResult(),然后迭代第二个。

我在 sp 中为输出参数赋值,但是当我在阅读器完成后检查值时,我的输出参数为空。看起来像一个错误。我不想使用选择,因为我不喜欢软糖。一些片段...

...

(注意这样做或使用 AddOutputParameter() 会产生相同的结果)

...

...

期待一些智慧的宝石:)

0 投票
4 回答
777 浏览

tsql - SqlDataReader 执行 TSQL 比 Management Studio 执行 TSQL 快

如果我在管理工作室中运行 TSQL 语句并通过 SqlDataReader 运行相同的查询,则后者给出的结果比前者更快......

任何原因??

0 投票
1 回答
327 浏览

c# - 我应该如何跟踪打开的 DataReader?

我的任务是创建一个类,客户可以使用该类从特定数据源获取数据。例如,主要例程将是

我知道数据访问应用程序块可以做到这一点,但由于我不会解释的原因,我不能使用应用程序块。无论如何,我确实打算借用一些逻辑。

但是,我任务的另一部分是跟踪打开的 DataReader。这只是为了验证每个人都正确地关闭了他们的读者。我的计划是在这个新类中只包含一个 DataReader 集合,每次调用 GetDataReader 例程时都会添加这些集合。在应用程序执行结束时,代码将遍历此集合并将警告记录到每个仍打开的阅读器的文件中。

所以,我有两个问题:

  1. 这种设计有什么本质上的问题吗?
  2. 无论如何我可以从 DataReader 执行 SQL 命令吗?这将大大简化对未封闭阅读器的搜索。或者,我是否必须存储读取器/命令对才能获取此信息?
0 投票
1 回答
916 浏览

.net - 操作在 sql 表中存储为 varbinary(max) 的 DATA FILE (text)

寻求帮助并需要指出正确的方向,有人可以提供帮助吗?

有一个包含 10000 个数字/数据点的数据文件 (txt)。将数据文件作为 varbinary(MAX) 存储在 SQL 表中。

我的目标是根据用户请求检索文件并将数字绘制/绘制为折线图。

让 DataReader 将数字直接显示到屏幕上没有问题,但我不知道如何将数字放入 DataSet(或表格)以绘制图表......

任何人都可以提供建议或指导吗?

非常感谢。溷

0 投票
9 回答
5039 浏览

asp.net-mvc - Linq to Sql vs Nhibernate vs SubSonic vs 存储过程(帮助)

我正在寻找为新闻频道开发一个网站。

所以,显然它每天都会收到很多点击,并且每天都会更新很多..

我有 ASP.Net 和 SQL Server 的经验..

这些是我正在考虑使用的技术。请帮我选择正确的方法,考虑到它需要的负载量..

技术??

1) ASP.Net 网络表单

2) ASP.Net MVC 1.0

和数据访问?

1)Linq to SQL(令人印象深刻,但有传言称微软正在放弃它)

2)Linq to Entity(性能问题)

3)数据读取器/数据集

4)亚音速(不知道)

5)NHibernate(不知道)

请在留下您的评论时解释您的观点。

谢谢

奇特雷什

0 投票
6 回答
928 浏览

performance - Winform 中的 Datareader 或 Dataset 是否需要长时间访问数据库?

我有一个将在美国和中国使用的 Winform 应用程序。SQL Server 2005 数据库在美国,所以中国的人访问数据会比较慢。我正在决定使用 DataReader 和 Dataset 以获得最佳性能。数据将在检索后立即加载到业务对象中。

问题:哪一个性能更好(DataReader/DataSet)从远处的数据库中提取数据?我已经读到 DataReader 会为每个 .Read() 返回数据库,所以如果连接开始时很慢,DataSet 会是这里更好的选择吗?

谢谢