Porównaj ceny domen i usług IT, sprzedawców z całego świata

Uzyskaj wartość od danych


Poniżej znajduje się przykładowy kod, który napisałem w 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()

Istnieją 4 sposoby uzyskania określonej wartości z
DataReader
. Chciałbym wiedzieć, która metoda jest najlepsza (jeśli ktoś potrafi wskazać różnicę między każdą z nich, będzie to bardzo pomocne).
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

var_stu_id = dr.GetValue(dr.GetOrdinal("stu_id"))
Jest to najlepsza metoda pobierania danych z DataReader.
  • Get & < Datatype & >
    Funkcje używane do pobierania określonych wartości DataType z DataReader. Ale
    GetValue ()
    może służyć do pobierania dowolnej wartości typu danych.
  • GetOrdinal ()
    trwa indeks nr kolumna również Nazwa kolumny jako odniesienie do kolumny, co z mojego punktu widzenia jest zaletą korzystania z tej metody.
  • Wypróbowałem już inne metody i jak dotąd jest to dla mnie najlepszy sposób na uzyskanie danych z DataReadera. Inną metodą było zgłaszanie wyjątków, takich jak
    NullReferenceException
    , podczas uzyskiwania dostępu do kolumn.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

DataReader udostępnia szereg metod, które umożliwiają dostęp do wartości kolumn we własnych typach danych (
GetDateTime
,
GetDouble
,
GetGuid
,
GetInt32
itp.).

Korzystanie z metod dostępu typu, które zakładają, że podstawowy typ danych jest znany, zmniejsza ilość konwersji typu wymaganej do pobrania wartości kolumny.

Spośród 4 pokazanych metod najlepszą metodą jest
var_stu_id = dr.GetValue ("stu_id")
.
Dlatego

pobiera wartość określonej kolumny w swoim własnym formacie

.
Źródło:

sqldatareader
https://msdn.microsoft.com/en- ... eader(v=vs.110).aspx
dane z datareader
https://msdn.microsoft.com/en- ... .aspx

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się