📅  最后修改于: 2023-12-03 15:36:15.090000             🧑  作者: Mango
在 .NET 中,使用 SqlDataReader 来读取数据库表中的数据是非常常见的。在获取数据时,有时需要获取列名称,以便能够使用正确的列名来引用数据。 以下是如何获取 SqlDataReader 的列名称。
可以使用 SqlDataReader 的 GetSchemaTable()
方法来获取当前结果集的完整 schema 信息,包括列名称和类型等。然后可以使用 DataRow.Field<T>()
方法来访问列名称。
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand("SELECT * FROM MyTable", connection);
SqlDataReader reader = command.ExecuteReader();
DataTable schemaTable = reader.GetSchemaTable();
string columnName = schemaTable.Rows[0].Field<string>("ColumnName");
// 使用 columnName 访问数据
}
可以使用 SqlDataReader 的 GetName()
方法来获取指定索引位置的列名称。以下是一个示例。
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand("SELECT * FROM MyTable", connection);
SqlDataReader reader = command.ExecuteReader();
string columnName = reader.GetName(0);
// 使用 columnName 访问数据
}
注意,GetName()
方法的参数是列的索引位置,与 Ordinal
属性相同,因此可以使用 Ordinal
属性来获取具有给定名称的列的索引位置。
以上是如何使用 SqlDataReader 获取列名称的方法。根据需求选择不同的方法来获取列名称,以方便访问数据。