问题标签 [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.
c# - 从 DbDataReader 读取/序列化时避免代码重复?
考虑下面的FetchData
方法。它旨在避免每次您想从数据库中获取一些数据时重复数据库查询代码。
FetchData
它可以工作,但如果这个对象创建能够以某种方式存在于方法中,那就太好了。
有更好的方法吗?
也许FetchData
可以修改为直接返回某个类型 X 的列表?
c# - 如何在 C# 中拥有包含没有 DataRow/DataReader 的数据库行数据的索引器对象
我目前有 2 个包装类来分别包含 DataReader 和 DataRow。包装类实现相同的接口 IIndexer。之所以使用它们,是因为我有很多方法可以对列进行索引以获取值:
这是示例: 如何使用相同的代码从 DataRow 或 DataReader 中读取?
现在我需要插入语句的第三个选项。现在没有 DataTables 来获取 DataRow,也不需要从 Db 中读取。
这可以通过使用 IndexerWrapper(或 DictionaryWrapper)来完成:
我已经有了数据库表的列信息,所以我会循环列并将列名添加为键。
有更好的方法吗?这不是那么方便,因为我必须初始化它。性能呢?这可能会在将来用于大质量,现在为每个项目存储列名。与 DataRows 的集合相比,真的有开销吗?
谢谢-马蒂
c# - 要列出的通用 DbDataReader映射
我的属性绑定数据访问类有一个小问题(更像是一个烦恼)。问题是,当阅读器中不存在类中相应属性的列时,映射失败。
代码
这是映射器类:
转换器类:
例外
堆栈跟踪
问题
我该如何修复它,以便当我有一个读者可能没有作为列的额外属性时它不会失败,反之亦然?当然,快速创可贴将是在示例中简单地添加NULL As Mileage
到此查询中,但是,这不是问题的解决方案:)
这里Map<T>
使用反射:
注意: 此方法比使用表达式树慢 63%...
ado.net - 为什么 ExecuteReader() 用尾随空格填充字符串?
我有两个疑问:
使用时,在 Q1 和Q2 的情况下System.Data.Odbc.OdbcCommandExecuteReader
返回DbDataReader
包含。'Obama'
'Obama '
为什么在 Q2 的情况下用尾随空格填充字符串,补救措施是什么?
在某些情况下,修剪是丑陋的,甚至是错误的。我正在使用 .Net Framework 3.5。
这是测试代码
.net - 使用 dbDataReaders 和“Using”,您还需要调用 Close 吗?
好的,如果我将 dbDataReader 放在“Using”语句中,我是否仍需要显式调用 dbDataReader.Close。在 .net 文档中,它说“使用”连接会自动关闭它。在下面来自 MSDN 的示例中,它显示了一个没有“Using”并显式关闭它的 dbDataReader:
所以这不是更清洁,更高效:
然后你就不需要在阅读器上显式调用 .Close 了吗?
提前致谢
c# - 从 NpgsqlDataReader 获取查询结果
这是我的功能:
我总是收到这个错误:“指定的演员表无效”!
但是当我使用这个时:
它工作正常!
我对 dateTime 类型也有同样的问题!!
我应该怎么做才能直接获取字段的类型?
c# - 使用 DbDataReader 从数据库读取数据时出错
我想从 oracle 数据库中读取数据并将该数据添加到列表中。但是当我运行应用程序时,我得到了“无效操作”。连接已关闭。错误。
这是我的代码:
你能帮我解决这个问题吗?
c# - DbDataReader 到 DataGrid WPF
我有一个返回 DbDataReader 对象的模块。这是一个在 Windows.Forms 中与 DataTable/DataGridView 一起经过尝试和信任并在生产中使用的模块,因此我不想更改它。
我尝试对 WPF 执行相同的操作,将 DataTable 传递给 ItemsSource,但失败了,因为它期望 DataTable 未实现的 IEnumerator。
我记得 DbDataReader 确实实现了该接口,我突然想到 ItemsSource 可能想要将数据读入内部缓冲区,所以我尝试传递 DbDataReader 并且它起作用了......直到我用 finally 子句完成了代码!
然后我发现 DataTableExtensions 确实允许我从 DataTable 中获取枚举器。但它似乎并没有迭代数据!
请注意,我不需要编辑数据,而且我从 DbDataReader 得到的很好,我只需要一份可用于网格的数据副本……我该怎么做,它一定很简单!
谢谢你的帮助!
根据要求,这是代码;
这基本上是我习惯用 Windows 窗体做的事情的类型:
WPF 的等价物是什么?
c# - 如何使用自定义 DbDataReader 填充表值参数?
根据MSDN,支持从或对象System.Data.SqlClient
填充表值参数。DataTable
DbDataReader
IEnumerable<SqlDataRecord>
IEnumerable<SqlDataRecord>
我编写了以下代码,它使用objects填充表值参数:
它完美地工作。
MSDN页面说:
您还可以使用派生自的任何对象
DbDataReader
将数据行流式传输到表值参数。
我想使用自定义DbDataReader
来传递行数据。像这样的东西:
我在初始代码示例中更改了以下行:
如果我运行代码,它会在执行期间给我以下异常command.ExecuteReader()
:
System.Data.dll 中出现“System.NotSupportedException”类型的未处理异常附加信息:不支持指定的方法。
我已经在我的CustomDbDataReader
类的所有方法和属性上设置了一个断点:在我得到异常之前它们都没有被调用,所以它可能与DbDataReader
编辑:这是堆栈跟踪,根据要求:
sql-server - 如何在 Access VBA 中检查 ODBC SQL Server 表是否具有写入权限?
我在 Microsoft Access 中有一个连接到 sql server 的 ODBC 链接表。
对于某些用户,连接到 SQL Server 的登录名只能访问一个具有 db_datareader 角色的数据库,因此他们无法编辑表中的任何数据。对于其他用户,他们有 db_datareader + db_datawriter 角色,他们可以编辑任何数据。
在 db_datareader 登录的情况下,如何在 vba 中检查我的表不可编辑?