从datareader获取价值

时间:2015-04-14 05:33:43

标签: vb.net datareader

以下是我用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种方法。我想知道哪个是最好的方法(如果有人指出它们之间的区别,那么它将是一个很好的帮助)。

2 个答案:

答案 0 :(得分:0)

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

在您展示的4种方式中,最佳方法是var_stu_id = dr.GetValue("stu_id")。 因为它以原生格式获取指定列的值

来源:sqldatareader

data from datareader

答案 1 :(得分:0)

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

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

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