У меня есть a tinyint
столбец в базе данных и я хочу преобразовать его в Int32
для SqlDataReader
.
Как я иду об этом?
Редактирование № 1
Я недавно должен был сделать это.
int a = dataReader.GetByte(dr.GetOrdinal("ColumnName"));
Дополнение #In к ответу
Отображения типа данных SQL Server
bigint - GetInt64
binary - GetBytes
int - GetInt32
money - GetDecimal
rowversion - GetBytes
smallint - GetInt16
tinyint - GetByte
uniqueidentifier - GetGuid
...
Для большего количества информационного посещения - Отображения Типа данных SQL Server
Что обычно возвращается как - байт? Если это так, просто выполните распаковку, а затем преобразование:
(int)(byte) reader["column"];
или просто позвольте преобразованию произойти естественным образом:
int x = (byte) reader["column"];
или сделайте то же самое со строго типизированными методами:
int x = reader.GetByte(column);
Измените это на sbyte
или short
или что-то еще, если я ошибаюсь в том, что он отображается в байт
. Вы можете выполнить преобразование на стороне SQL Server, но я бы лично сделал это на стороне клиента, а SQL оставил проще.