aynı mı DataReader [i] DataReader.GetValue DataReader.GetString (i) v, (i) v
dataReader.GetValue(i)
için mantıksal olarak eşdeğer
dataReader[i]
mi? Onlar farklı mı? Birinin diğerine uygun olacağı bir durum var mı?
documented differently vardır:
- belirtilen dizin
- İade belirtilen alanın değeri bulunan sütun alır. ben onları kullandığınızda
Ama ikisi de alanın değerini döndürür. "Sütunu al" için ne anlama geliyor? "Bir alanın değerini döndürmek" ne demektir?
Bonus Chatter: Ben buna
:
reader[i];
reader.GetValue(i);
reader.GetString(i);
i String
'GetValue' bir 'byte 'döndürdüğü, ancak' GetInt32' bir Int32 –
baytını atamadığı korkunç kenar durumları var (özellikle demonte kodun izlenmesi zor olduğundan) Görünüşte, sütundaki değer zaten istenen tipte olmalıdır, aksi takdirde InvalidCastException (kendisi biraz yanıltıcıdır) atılacaktır. Cevabı ben düzenleyeceğim. –
Gerçekten de, GetInt32 belgeleri (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getint32.aspx) "Dönüşüm yapılmıyor, bu nedenle alınan veriler Zaten bir 32-bit imzalı tamsayı. " Diğer GetXXX yöntemleri benzer şekilde belgelenmiştir. –