如何在t#中将t-sql的"tinyint"转换为整数?

Teb*_*ebo 58 c# sql-server

tinyint在数据库中有一个列,我希望将其转换Int32SqlDataReader.

我该怎么做呢?

编辑#1

我最近不得不这样做.

int a = dataReader.GetByte(dr.GetOrdinal("ColumnName"));
Run Code Online (Sandbox Code Playgroud)

#In除了答案

SQL Server数据类型映射

bigint           - GetInt64  
binary           - GetBytes  
int              - GetInt32  
money            - GetDecimal  
rowversion       - GetBytes  
smallint         - GetInt16  
tinyint          - GetByte  
uniqueidentifier - GetGuid   
...
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请访问 - SQL Server数据类型映射

Jon*_*eet 87

它通常会以什么方式返回 - 字节?如果是这样,只需做一个unbox然后转换:

(int)(byte) reader["column"];
Run Code Online (Sandbox Code Playgroud)

或者让转换自然发生:

int x = (byte) reader["column"];
Run Code Online (Sandbox Code Playgroud)

或者使用强类型方法执行相同的操作:

int x = reader.GetByte(column);
Run Code Online (Sandbox Code Playgroud)

如果我错误地将其映射到,请将其调整为sbyteshort等等byte.您可以在SQL Server端进行转换,但我个人会在客户端进行转换,并保持SQL更简单.