SqlDataReader.GetOrdinal 方法

在给定列名称的情况下获取列序号。

**命名空间:**System.Data.SqlClient
**程序集:**System.Data(在 system.data.dll 中)

语法

声明
Public Overrides Function GetOrdinal ( _
    name As String _
) As Integer
用法
Dim instance As SqlDataReader
Dim name As String
Dim returnValue As Integer

returnValue = instance.GetOrdinal(name)
public override int GetOrdinal (
    string name
)
public:
virtual int GetOrdinal (
    String^ name
) override
public int GetOrdinal (
    String name
)
public override function GetOrdinal (
    name : String
) : int

参数

  • name
    列的名称。

返回值

从零开始的列序号。

异常

异常类型 条件

IndexOutOfRangeException

指定的名称不是有效的列名称。

备注

GetOrdinal 首先执行区分大小写的查找。如果失败,则进行另一次不区分大小写的搜索。

GetOrdinal 不区分假名宽度。

由于基于序号的查找比命名查找更为有效,因此在循环中调用 GetOrdinal 的效率较低。为了节省时间,可以调用一次 GetOrdinal,然后将结果分配给整数变量以便在循环中使用。

示例

下面的示例说明如何使用 GetOrdinal 方法。

Private Sub ReadGetOrdinal(ByVal connectionString As String)
    Dim queryString As String = _
       "SELECT DISTINCT CustomerID FROM dbo.Orders;"

    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()

        Dim reader As SqlDataReader = command.ExecuteReader()

        ' Call GetOrdinal and assign value to variable.
        Dim customerID As Integer = reader.GetOrdinal("CustomerID")

        ' Use variable with GetString inside of loop.
        While reader.Read()
            Console.WriteLine("CustomerID={0}", reader.GetString(customerID))
        End While

        ' Call Close when done reading.
        reader.Close()
    End Using
End Sub
private static void ReadGetOrdinal(string connectionString)
{
    string queryString = "SELECT DISTINCT CustomerID FROM dbo.Orders;";
    using (SqlConnection connection =
               new SqlConnection(connectionString))
    {
        SqlCommand command =
            new SqlCommand(queryString, connection);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        // Call GetOrdinal and assign value to variable.
        int customerID = reader.GetOrdinal("CustomerID");

        // Use variable with GetString inside of loop.
        while (reader.Read())
        {
            Console.WriteLine("CustomerID={0}", reader.GetString(customerID));
        }

        // Call Close when done reading.
        reader.Close();
    }
}

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

SqlDataReader 类
SqlDataReader 成员
System.Data.SqlClient 命名空间

其他资源

在 ADO.NET 中连接和检索数据
使用 SQL Server .NET Framework 数据提供程序