Можно ли получить имена столбцов от SqlDataReader?

Спасибо за присоединение configmap и развертывание yaml. Можете ли вы попробовать ниже конфигурации.

Из Обзор плагина Parser . Они предоставили простой пример для получения журналов nginx.


  @type tail
  path /path/to/input/file
  
    @type nginx
    keep_time_key true
  

Можете ли вы добавить вышеуказанный конфиг в configmap и попробовать. Парсер nginx встроен, ссылка, которую вы предоставили, является объяснением внутренних частей синтаксического анализатора. Если вам не нравится способ выбора / разбора, вы можете написать свой собственный.

В любом случае, используя @type, мы можем определить тип парсера, который нам нужен.

PS: Сейчас у меня нет никаких настроек, чтобы проверить это. Также у меня мало знаний в fluentd

РЕДАКТИРОВАТЬ:

Я думаю, вы уже знали, как fluentd получает журналы ... В вашей ссылке на Раздел volumeMounts, он монтирует хост /var/lib/docker/containers, который содержит все метаданные контейнера, журналы и т. Д.

264
задан davmos 10 August 2014 в 22:27
поделиться

4 ответа

var reader = cmd.ExecuteReader();

var columns = new List<string>();

for(int i=0;i<reader.FieldCount;i++)
{
   columns.Add(reader.GetName(i));
}

или

var columns = Enumerable.Range(0, reader.FieldCount).Select(reader.GetName).ToList();
435
ответ дан Rob Stevenson-Leggett 23 November 2019 в 02:28
поделиться

Существует a GetName функция на SqlDataReader который принимает индекс столбца и возвращает название столбца.

С другой стороны существует a GetOrdinal который берет в имени столбца и возвращает индекс столбца.

77
ответ дан Michał Powaga 23 November 2019 в 02:28
поделиться

Вы верная банка.


protected void GetColumNames_DataReader()
{
  System.Data.SqlClient.SqlConnection SqlCon = new System.Data.SqlClient.SqlConnection("server=localhost;database=northwind;trusted_connection=true");
  System.Data.SqlClient.SqlCommand SqlCmd = new System.Data.SqlClient.SqlCommand("SELECT * FROM Products", SqlCon);

  SqlCon.Open();

  System.Data.SqlClient.SqlDataReader SqlReader = SqlCmd.ExecuteReader();
  System.Int32 _columncount = SqlReader.FieldCount;

  System.Web.HttpContext.Current.Response.Write("SqlDataReader Columns");
  System.Web.HttpContext.Current.Response.Write(" ");

  for ( System.Int32 iCol = 0; iCol < _columncount; iCol ++ )
  {
    System.Web.HttpContext.Current.Response.Write("Column " + iCol.ToString() + ": ");
    System.Web.HttpContext.Current.Response.Write(SqlReader.GetName( iCol ).ToString());
    System.Web.HttpContext.Current.Response.Write(" ");
  }

}

Это первоначально от: http://www.dotnetjunkies.ddj.com/Article/B82A22D1-8437-4C7A-B6AA-C6C9BE9DB8A6.dcik

2
ответ дан Kevin Cathcart 23 November 2019 в 02:28
поделиться

Можно получить имена столбцов от DataReader.

Вот важная часть:

  for (int col = 0; col < SqlReader.FieldCount; col++)
  {
    Console.Write(SqlReader.GetName(col).ToString());         // Gets the column name
    Console.Write(SqlReader.GetFieldType(col).ToString());    // Gets the column type
    Console.Write(SqlReader.GetDataTypeName(col).ToString()); // Gets the column database type
  }
42
ответ дан Ellis 23 November 2019 в 02:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: