使用 Sql Server 从 C# 中的读取器读取数据

本文关键字:读取 数据 Sql Server 使用 | 更新日期: 2023-09-27 18:37:19

在C#中,哪一种是读取读取器对象的更有效的方式,通过整数索引还是通过命名索引?

ad.Name = reader.GetString(0);

ad.Name = reader["Name"].ToString();

使用 Sql Server 从 C# 中的读取器读取数据

name

载需要先找到索引。

MSDN

首先执行区分大小写的查找。如果失败,则一秒钟 进行不区分大小写的搜索(执行不区分大小写的比较) 使用数据库排序规则)。在以下情况下可能会出现意外结果 比较受特定于区域性的大小写规则的影响。为 例如,在土耳其语中,以下示例产生错误的结果 因为土耳其语的文件系统不使用语言大小写 "文件"中字母"i"的规则。

Getordinal(因此使用):

由于基于序号的查找比命名查找更有效, 在循环中调用 GetOrdinal 效率低下。节省时间 调用一次 GetOrdinal 并将结果分配给整数 变量,用于在循环中使用。

因此,在循环中,查找序号索引一次并在循环体中重用它可能更有效。

但是,名称查找由使用非常有效的HashTable的类支持。

reader.GetString(index);

这将获取该列索引处

的行值作为字符串,第二种解决方案更理想,因为它允许您以自己喜欢的类型获取该索引处的值。

例:-

String name = reader["Name"].ToString();
int age = (int) reader["Age"]
ad.Name = reader["Name"].ToString();

这是最有效的方法。

因为尽管您更改了数据库表结构后的话,但由于您直接提到了列名,因此不会对此代码产生影响。

但是对于列索引,当您在此列之前将任何列添加到表中时,它将发生变化。