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