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

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

我如何去做呢?

编辑#1

我最近不得不这样做。

 int a = dataReader.GetByte(dr.GetOrdinal("ColumnName")); 

#除了答案

SQL Server数据types映射

 bigint - GetInt64 binary - GetBytes int - GetInt32 money - GetDecimal rowversion - GetBytes smallint - GetInt16 tinyint - GetByte uniqueidentifier - GetGuid ... 

有关更多信息,请访问 – SQL Server数据types映射

它通常以什么forms返回为字节? 如果是这样,只要做一个unbox然后转换:

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

或者只是让转换自然发生:

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

或者用强types的方法做同样的事情:

 int x = reader.GetByte(column); 

调整这个sbyteshort或什么,如果我错了它映射到byte 。 你可以在SQL Server端进行转换,但是我会亲自在客户端进行转换,并保持SQL更简单。

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

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

要从sql表中得到一个tinyint我做以下几点:

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

retorno是一个intvariables。

我希望这可以帮助你。