C # SqlDataReader метод GetName - PullRequest
       21

C # SqlDataReader метод GetName

0 голосов
/ 24 сентября 2019

Я использую метод для получения имен столбцов, однако все они возвращаются в нижнем регистре, тогда как в БД они имеют регистр верблюдов.

Так работает метод, то есть всегда возвращает строчные буквы?
IЯ не делаю ничего смешного, просто

SqlDataReader sqlReader = sqlCommand.ExecuteReader();
sqlReader.GetName(i);

ДОБАВЛЕНО:
Запрос выбора выглядит следующим образом:

select AddressID, AddressLine1, City, StateProvinceID, PostalCode from [Person].[Address]

А вот и весь метод, возможно, яупустил что-то очевидное

public QueryData readFromDB(string sqlQuery)
{
    QueryData queryData = new QueryData();
    try
    {
        SqlCommand sqlCommand = new SqlCommand(sqlQuery, dbConnection);
        dbConnection.Open();
        SqlDataReader sqlReader = sqlCommand.ExecuteReader();

        int numberOfColumns = sqlReader.FieldCount;

        while (sqlReader.Read())
        {
            object[] rowData = new object[numberOfColumns];
            for (int i = 0; i < numberOfColumns; i++)
            {
                rowData[i] = sqlReader.GetValue(i).ToString();
            }
            queryData.addQueryData(rowData);
        }

        for (int i = 0; i < sqlReader.FieldCount; i++)
        {
            queryData.addHeader(sqlReader.GetName(i));
            queryData.addDataType(sqlReader.GetDataTypeName(i));
        }
        sqlReader.Close();
        sqlCommand.Dispose();
    }
    catch (System.Data.SqlClient.SqlException e)
    {
        MyMessageBox.display(e.Message + "\r\n" + dbConnection.ConnectionString, MessageBoxType.Error);

    }

    dbConnection.Close();
    return queryData;
}

ДОБАВЛЕНО:

По совету Сергея я запускаю следующий запрос:

select [COLUMN_NAME] from INFORMATION_SCHEMA.COLUMNS where [TABLE_SCHEMA] = 'Person' and [TABLE_NAME] = 'Address'

и получается:

COLUMN_NAME
AddressID
AddressLine1
AddressLine2
City
StateProvinceID
PostalCode
SpatialLocation
rowguid
ModifiedDate

Затем следующий запрос:

select AddressID as 'ADDRESS_ID', AddressLine1, City, StateProvinceID, PostalCode from [Person].[Address]

и заголовки, возвращаемые в SQL Manager:

ADDRESS_ID  AddressLine1    City    StateProvinceID PostalCode

Я использую MS SQL Server

...