2011-12-28 8 views

Odpowiedz

62
Log.WriteLine("Value of CompanyName column:" + thisReader["CompanyName"]); 
+5

I stosuje się jako rozwiązanie alternatywne w przypadku - 'Log.WriteLine ("wartość kolumny CompanyName" + thisReader.GetValue (thisReader.GetOrdinal ("NazwaFirmy"))); ' Co oznacza [?]? – algot

+0

@algot to jest indeksowana właściwość, zobacz http://msdn.microsoft.com/en-us/library/aa288464.aspx lub http://msdn.microsoft.com/en-us/library/2549tw02.aspx –

+1

I nie rozumiem składni "thisReader [" CompanyName "]) .To w żaden sposób logiczne.Logiczne byłoby" thisReader.fields ("CompanyName"). "wartość." Ale kim jestem, aby sądzić ... – tmighty

41

Możesz to również zrobić.

//find the index of the CompanyName column 
int columnIndex = thisReader.GetOrdinal("CompanyName"); 
//Get the value of the column. Will throw if the value is null. 
string companyName = thisReader.GetString(columnIndex); 
+0

Zastanawiam się, w którym przypadku mogłoby to przynieść więcej korzyści niż bezpośrednie odczytanie danych z czytnika jako thisReader ["CompanyName"] Czy możesz podać jakieś konkretne uzasadnienie? Bardzo dziękuję – curiousBoy

+1

@curiousBoy robi to w ten sposób ułatwi sprawdzenie, czy kolumna istnieje, upewnia się również, że wybrana wartość jest w poprawnej postaci danych, np. GetString, GetInt32 to nie tylko zwraca obiekt, który trzeba następnie rzutować. Właśnie dlatego użyłbym tej metody –

+0

@DavidMolyneux thx dla twojego komentarza, o ile rozumiem z twoich wyjaśnień, to w zasadzie robi "zerowy kratka" dla łańcucha i wyrzuca błąd, gdy wartość jest pusta. To również sprawia, że ​​jest to tylko typ łańcucha. Poza tym, na przykład: "int productQuantiy = thisReader [" ProductQuantity "]" zgłasza błąd, jeśli ProductQuantity nie ma prawidłowej wartości int, prawda? jeszcze raz. – curiousBoy

-3

thisReader.GetString (Int columnIndex)

+0

Dodaj wyjaśnienie, w jaki sposób ta odpowiedź * rozwiązuje * problem. – ekad

Powiązane problemy