Я использую метод для получения имен столбцов, однако все они возвращаются в нижнем регистре, тогда как в БД они имеют регистр верблюдов.
Так работает метод, то есть всегда возвращает строчные буквы?
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