2011-12-28 4 views

ответ

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

я использовал в качестве временного решения следующего - 'Log.WriteLine ("Значение столбца CompanyName:" + thisReader.GetValue (thisReader.GetOrdinal ("НазваниеКомпания"))); ' Что означает []? – algot

+0

@algot это индексированное свойство, см. Http://msdn.microsoft.com/en-us/library/aa288464.aspx или http://msdn.microsoft.com/en-us/library/2549tw02.aspx –

+1

I не понимаю синтаксис «thisReader [« CompanyName »]). Это никоим образом не логично. Логичным будет« thisReader.fields («CompanyName»). value ». Но кто я должен судить ... – tmighty

41

Вы также можете это сделать.

//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

Я думал, что в этом случае это может принести больше пользы, чем прямое чтение данных от читателя как thisReader [«CompanyName»]. Можете ли вы дать какой-либо конкретный случай для этого? Большое спасибо. – curiousBoy

+1

@curiousBoy делает это так облегчит проверку, если столбец существует, также гарантирует, что выбранное вами значение находится в правильной форме данных, например GetString, GetInt32, он просто не возвращает объект, который вам нужно выполнить. Вот почему я бы использовал этот метод –

+0

@DavidMolyneux thx для вашего комментария, насколько я понимаю из вашего объяснения, он в основном выполняет «нулевую проверку» для строки и выдает ошибку в случае, если значение равно null. Это также заставляет меня думать, что это только для типа строки. Кроме этого, например: «int productQuantiy = thisReader [« ProductQuantity »]» выдаст ошибку, если ProductQuantity не имеет допустимого значения int, не так ли? thx снова. – curiousBoy

-3

thisReader.GetString (интермедиат ColumnIndex)

+0

Пожалуйста, добавьте некоторое объяснение того, как этот ответ на самом деле * решает * проблему. – ekad

Смежные вопросы