从datareader获取价值

问题描述 投票:2回答:2

下面是我用VB.NET编写的一段代码示例。

 commandReader.CommandText = "Select stu_id from tbl_students Where stu_id = 845)"
   dr = commandReader.ExecuteReader
   While dr.Read
        var_stu_id = dr!stu_id
        var_stu_id = dr.GetValue(dr.GetOrdinal("stu_id"))
        var_stu_id = dr("stu_id")
        var_stu_id = dr.GetValue("stu_id")
   End While
   dr.Close()

DataReader获得特定值有4种方法。我想知道哪个是最好的方法(如果有人指出它们之间的区别,那么它将是一个很大的帮助)。

vb.net datareader
2个回答
1
投票

var_stu_id = dr.GetValue(dr.GetOrdinal("stu_id"))

是从DataReader检索数据的最佳方法。

  1. Get<Datatype>函数用于从DataReader中检索特定的DataType值。但GetValue()可用于检索任何数据类型值。
  2. GetOrdinal()接受列的索引号以及列名作为列引用,这是从我的角度使用此方法的一个优点。
  3. 之前我尝试过其他方法,到目前为止,这是我从DataReader检索数据的最佳方法。其他方法在访问列时提供了一些例外,例如NullReferenceException

0
投票

DataReader提供了一系列方法,允许您访问其本机数据类型中的列值(GetDateTimeGetDoubleGetGuidGetInt32等)。使用类型化的访问器方法,假设基础数据类型已知,减少了数量检索列值时所需的类型转换

在你展示的4种方式中,最好的方法是var_stu_id = dr.GetValue("stu_id")。因为它以其本机格式获取指定列的值。

资料来源:sqldatareader

data from datareader

© www.soinside.com 2019 - 2024. All rights reserved.