问题标签 [sqldatareader]
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.
asp.net - SqlDataReader 列序号
假设我正在调用一个查询“SELECT name, city, country FROM People”。执行 SqlDataReader 后,列的顺序是否与我的 sql 查询中的顺序相同?
换句话说,我可以相信以下代码将始终正常工作:
另外,如果我使用列名而不是序数 (reader["name"]),我会损失多少性能?
是否有任何官方的微软文档描述了 SqlDataReader 中的列排序行为?
c# - SqlDataReader - 结果集缓存?
当您使用 SqlDataReader 时,返回集是否完全由 ExecuteReader 步骤确定,或者您是否可以通过在读取时写入源表来影响您获得的结果?这是一个非常粗糙的伪代码示例。
我在其他环境中看到了很多由于写入您正在阅读的表而导致的错误。这里记录 k 从列表的顶部 (Adams) 被撞到底部 (Ziegler)。我假设(哈!)SqlDataReader 是免疫的。真的?错误的?
.net - .NET DataReader 和 SQL 连接
我目前正在编写一些 .NET 代码,其中涉及执行连接查询,然后使用 DataReader 访问返回的数据。我想知道是否可以使用某种前缀表示法(参见上面的示例)从返回的行中访问字段,而不必使用序数位置来访问行中的值(在两个表都包含重叠字段的情况下)名字)?
c# - 寻找建议:访问数据并填充 List/arraylist/list
我想做这样的事情:
- 使用数据读取器访问数据库中的记录。我不知道会返回多少条记录——大部分时间在 1 到 300 条之间。对于每条记录,数据将类似于“0023”、“Eric”、“Harvest Circle”、“Boston”。
- 我想立即填充一些东西(数组,列表?)并关闭连接。
- 将填充的对象传递回我的 web 服务,在发送到客户端之前,我会将其转换为 JSON。
我遇到的问题是使用数据读取器中的数据填充哪些对象/对象。我开始使用 ArrayList(现在已经阅读了有关使用 List 的信息),但是虽然我可以取回所有记录(在本例中只有 2 个项目),但我无法访问每个项目中的各个字段(埃里克,波士顿, ETC)。
进入Plan B:在datareader 中foreach 记录,将各个列的值添加到一个数组中,然后将每个数组添加到List 中。我认为这会起作用,但是当我不知道需要实例化多少个数组时,我不确定如何实例化一个数组。换句话说,我通常会这样做 string[] myarray = new string[]{"eric", "boston", "etc"};
但是如果我有多个记录,那会是什么样子?填充数组,添加到列表,清除原始数组然后重新填充,将其添加到列表等?
任何帮助将不胜感激!此外,我对这样做的其他方法持开放态度。
谢谢!
data-binding - 如何制作一个可以将 SQLDataReader 和 DBDataRecord 作为参数的函数?
我有一个在 SqlDataReader 内循环时通常调用的函数,它将从 SqlDataReader 获取数据并用它做一些事情。
现在,我还需要能够从 Data Bound Repeater 对象内部调用它,该对象也绑定到 SqlDataReader ...
在 DataBound 控件中,在“OnDataBinding”事件中,我通常在绑定到 DataSet 时这样做:
现在,由于我绑定到 DataReader,我尝试了:
它不起作用,因为显然 DataItem 是 DataRecordInternal 类型
我能够将它转换为“DbDataRecord”,并且可以访问它的值,但我显然不能将它作为参数传递给需要 SqlDataReader 的函数......
我也找不到它们共同的任何基类或接口,用于参数......
最让我困惑的是,SqlDataReader 如何通过数据绑定“变成” DbDataRecord。如果我可以在我的函数中做到这一点,我可以有 2 个重载:一个接受 DbDataRecord 并完成其工作,另一个接受 SqlDataReader,将其“转换”为 DbDataRecord,并调用第一个重载。
有任何想法吗?
谢谢!
c# - 当我调用 SqlAdapter.Update 并同时调用 SqlDataReader.Read 时是否有问题
我有两个应用程序,一个使用 SqlDataAdapter.Update 方法更新具有恒定行数(128 行)的单个表,另一个应用程序使用 SqlDataReader 定期从该表中进行选择。
有时 DataReader 只返回 127 行而不是 128 行,并且更新应用程序不会删除甚至插入任何新行,它只是更新。
我在问这种行为的原因是什么?
sqldatareader - 为什么要使用 SqlDataReader 的 GetOrdinal() 方法
使用以下语法从 SqlDataReader 读取值有什么区别:
或者
c# - 不存在数据时尝试读取无效
当我调试到第 7 行时,一切正常,但之后dr
抛出异常:
不存在数据时尝试读取无效。
我不明白为什么会出现该异常,因为表中确实有用户名 = sumant 的数据。
请告诉我'if'语句是否正确。以及如何修复错误?
c# - 从 DataReader 解析小数
我找到了解决这个错误的方法,但现在我真的很好奇为什么会发生这种情况,想知道是否有其他人遇到过这个错误。
我的功能如下:
以前有人见过吗?
更奇怪的是,如果我输入这个:
效果很好,4.0 是从我的 DataReader 中出来的。
正如我之前所说,TryParse 方法工作正常,所以它不会阻止我携带,但现在我真的很想看看是否有人对此有答案。
期待一些回复!
肖恩
编辑 - 已解决
decimal.Parse 方法运行良好,该函数第二次运行时(在循环中),未对帖子进行评级,因此数据读取器返回空值。在 SQL 中将 COALESCE 包裹在我的计算中可以很好地解决问题。因此,正如您所说,为什么 tryparse 方法没有抛出异常,只是将默认值 0 保留为 _rating。
c# - 在 C# 中读取带有输出参数和结果集的 SP?
我创建了一个类似于这个简化示例的存储过程:
当我在调用对象的ExecuteReader()
方法后尝试从输出变量中读取值时SqlCommand
,这些值为空。
我做错了什么?