Как преобразовать "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 57

4 ответа:

что обычно возвращается в виде байта? Если это так, просто распакуйте, а затем преобразуйте:

(int)(byte) reader["column"];

или просто пусть преобразование произойдет естественным образом:

int x = (byte) reader["column"];

или сделайте то же самое со строго типизированными методами:

int x = reader.GetByte(column);

настроить sbyte или short или что-то еще, если я ошибаюсь в этом сопоставлении с byte. Вы можете сделать преобразование на стороне SQL Server, но я бы лично сделал это на стороне клиента вместо этого и сохранил SQL упроститься.

использование "SByte" работает каждый раз для обработки крошечной проблемы Int

int RetValue;
RetValue = (int)(byte)dt.Rows[A][B]  // A = RowNo , B = 'tinyint' Column Name.

чтобы получить tinyint из таблицы sql, я делаю следующее:

retorno = Convert.ToInt32(dr.GetByte(dr.GetOrdinal("StepStatus")));

где retorno-переменная int.

Я надеюсь, что это поможет вам.