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

时间:2009-12-17 14:19:04

标签: c# sql-server

我在数据库中有一个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 Data Type Mappings

4 个答案:

答案 0 :(得分:86)

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

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

或者让转换自然发生:

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

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

int x = reader.GetByte(column);

如果我错误地将其映射到sbyte,请将其调整为shortbyte或其他任何内容。您可以在SQL Server端进行转换,但我个人会在客户端进行转换,并使SQL更简单。

答案 1 :(得分:2)

每次使用“SByte”可以处理Tiny Int问题

答案 2 :(得分:0)

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

答案 3 :(得分:0)

要从sql表中获取tinyint,请执行以下操作:

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

其中retorno是一个int变量。

我希望这对你有所帮助。