这可能看起来很疯狂,但我觉得不得不问。假设select *
您读取数据行并获得 N 列的结果 SqlDataReader 的执行。现在阅读下一行。这些行中列的顺序是否有任何可能不同?
考虑这个 MSDN 博客中的图 1 。它显示每一行对于每个列数据段都有一组唯一的列标题。来自该博客的链接表格数据流协议确认每个“单元”都有唯一的 COLINFO 和 COLMTADATA。为什么会有这种重复,除非有可能它可能从一行到另一行不同?
这里有没有人引用 reader[name] 而不是 reader[int] 以避免这种潜在的陷阱?或者从每一行重新加载一组名称/整数对,以防序数发生变化?我知道使用列名更优雅,但对于从查询返回的较大数据集,是否“强烈推荐”?