получить значение с помощью OleDbDataReader - PullRequest
1 голос
/ 12 августа 2010

Давайте подумаем, что мой sql-запрос

  select customerDetials.custid,TestTable.col1 from CustomerDetails INNER JOIN TestTable  on CustomerDetails.custid=TestTables.custid where CustomerDetails.custid>0

Я хочу использовать OleDbDataReader для получения строк этого.

Я использовал этот способ

while (dataReader.Read())
{
       string str= dataReader["customerDetials.custid"].ToString();
}

, ноПроблема в том, что здесь есть объединение, поэтому, если я даю имя столбца, как указано выше, это вызывает исключение, и я не могу использовать индекс или не могу изменить SQL-запрос. Так есть ли способ получить данные, используя имя столбца?

Ответы [ 3 ]

1 голос
/ 12 августа 2010

Вы пытались использовать только

while (dataReader.Read()) { 
    string str= dataReader["custid"].ToString();    
}
0 голосов
/ 28 мая 2013

Если вы не знаете, что запрос будет возвращен, вам необходимо:

Получить FieldCount (количество столбцов в наборе результатов), а затем перебрать поля (столбцы) в каждой строке.DataReader для извлечения данных.

Вам понадобится одно или несколько из следующих методов:

  • GetFieldType (int) - возвращает тип столбца.
  • GetDataTypeName (int) - возвращает имя типа столбца внутренней базы данных.
  • GetName (int) - возвращает имя столбца.
0 голосов
/ 12 августа 2010

Я ДУМАЮ, что ты хочешь ...

string str = dataReader.GetInt32(0).ToString();

где (0) относится к порядковому положению столбцов, начинающемуся с нуля, как в запросе

...