问题标签 [dbdatareader]

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 投票
2 回答
116 浏览

c# - 从 DbDataReader 读取/序列化时避免代码重复?

考虑下面的FetchData方法。它旨在避免每次您想从数据库中获取一些数据时重复数据库查询代码。

FetchData它可以工作,但如果这个对象创建能够以某种方式存在于方法中,那就太好了。

有更好的方法吗?

也许FetchData可以修改为直接返回某个类型 X 的列表?

0 投票
0 回答
119 浏览

c# - 如何在 C# 中拥有包含没有 DataRow/DataReader 的数据库行数据的索引器对象

我目前有 2 个包装类来分别包含 DataReader 和 DataRow。包装类实现相同的接口 IIndexer。之所以使用它们,是因为我有很多方法可以对列进行索引以获取值:

这是示例: 如何使用相同的代码从 DataRow 或 DataReader 中读取?

现在我需要插入语句的第三个选项。现在没有 DataTables 来获取 DataRow,也不需要从 Db 中读取。

这可以通过使用 IndexerWrapper(或 DictionaryWrapper)来完成:

我已经有了数据库表的列信息,所以我会循环列并将列名添加为键。

有更好的方法吗?这不是那么方便,因为我必须初始化它。性能呢?这可能会在将来用于大质量,现在为每个项目存储列名。与 DataRows 的集合相比,真的有开销吗?

谢谢-马蒂

0 投票
1 回答
4454 浏览

c# - 要列出的通用 DbDataReader映射

我的属性绑定数据访问类有一个小问题(更像是一个烦恼)。问题是,当阅读器中不存在类中相应属性的列时,映射失败。

代码

这是映射器类:

转换器类:

例外

堆栈跟踪

问题

我该如何修复它,以便当我有一个读者可能没有作为列的额外属性时它不会失败,反之亦然?当然,快速创可贴将是在示例中简单地添加NULL As Mileage到此查询中,但是,这不是问题的解决方案:)


这里Map<T>使用反射:

注意: 此方法比使用表达式树慢 63%...

0 投票
1 回答
1246 浏览

ado.net - 为什么 ExecuteReader() 用尾随空格填充字符串?

我有两个疑问:

使用时,在 Q1 和Q2 的情况下System.Data.Odbc.OdbcCommandExecuteReader返回DbDataReader包含。'Obama''Obama '

为什么在 Q2 的情况下用尾随空格填充字符串,补救措施是什么?

在某些情况下,修剪是丑陋的,甚至是错误的。我正在使用 .Net Framework 3.5。

这是测试代码

0 投票
3 回答
124 浏览

.net - 使用 dbDataReaders 和“Using”,您还需要调用 Close 吗?

好的,如果我将 dbDataReader 放在“Using”语句中,我是否仍需要显式调用 dbDataReader.Close。在 .net 文档中,它说“使用”连接会自动关闭它。在下面来自 MSDN 的示例中,它显示了一个没有“Using”并显式关闭它的 dbDataReader:

所以这不是更清洁,更高效:

然后你就不需要在阅读器上显式调用 .Close 了吗?

提前致谢

0 投票
1 回答
11334 浏览

c# - 从 NpgsqlDataReader 获取查询结果

这是我的功能:

我总是收到这个错误:“指定的演员表无效”!
但是当我使用这个时:

它工作正常!
我对 dateTime 类型也有同样的问题!!
我应该怎么做才能直接获取字段的类型?

0 投票
1 回答
148 浏览

c# - 使用 DbDataReader 从数据库读取数据时出错

我想从 oracle 数据库中读取数据并将该数据添加到列表中。但是当我运行应用程序时,我得到了“无效操作”。连接已关闭。错误。

这是我的代码:

你能帮我解决这个问题吗?

0 投票
1 回答
87 浏览

c# - DbDataReader 到 DataGrid WPF

我有一个返回 DbDataReader 对象的模块。这是一个在 Windows.Forms 中与 DataTable/DataGridView 一起经过尝试和信任并在生产中使用的模块,因此我不想更改它。

我尝试对 WPF 执行相同的操作,将 DataTable 传递给 ItemsSource,但失败了,因为它期望 DataTable 未实现的 IEnumerator。

我记得 DbDataReader 确实实现了该接口,我突然想到 ItemsSource 可能想要将数据读入内部缓冲区,所以我尝试传递 DbDataReader 并且它起作用了......直到我用 finally 子句完成了代码!

然后我发现 DataTableExtensions 确实允许我从 DataTable 中获取枚举器。但它似乎并没有迭代数据!

请注意,我不需要编辑数据,而且我从 DbDataReader 得到的很好,我只需要一份可用于网格的数据副本……我该怎么做,它一定很简单!

谢谢你的帮助!

根据要求,这是代码;

这基本上是我习惯用 Windows 窗体做的事情的类型:

WPF 的等价物是什么?

0 投票
1 回答
536 浏览

c# - 如何使用自定义 DbDataReader 填充表值参数?

根据MSDN,支持从或对象System.Data.SqlClient填充表值参数。DataTableDbDataReaderIEnumerable<SqlDataRecord>

IEnumerable<SqlDataRecord>我编写了以下代码,它使用objects填充表值参数:

它完美地工作。

MSDN页面说:

您还可以使用派生自的任何对象DbDataReader将数据行流式传输到表值参数。

我想使用自定义DbDataReader来传递行数据。像这样的东西:

我在初始代码示例中更改了以下行:

如果我运行代码,它会在执行期间给我以下异常command.ExecuteReader()

System.Data.dll 中出现“System.NotSupportedException”类型的未处理异常附加信息:不支持指定的方法。

我已经在我的CustomDbDataReader类的所有方法和属性上设置了一个断点:在我得到异常之前它们都没有被调用,所以它可能与DbDataReader


编辑:这是堆栈跟踪,根据要求:

0 投票
1 回答
1190 浏览

sql-server - 如何在 Access VBA 中检查 ODBC SQL Server 表是否具有写入权限?

我在 Microsoft Access 中有一个连接到 sql server 的 ODBC 链接表。

对于某些用户,连接到 SQL Server 的登录名只能访问一个具有 db_datareader 角色的数据库,因此他们无法编辑表中的任何数据。对于其他用户,他们有 db_datareader + db_datawriter 角色,他们可以编辑任何数据。

在 db_datareader 登录的情况下,如何在 vba 中检查我的表不可编辑?