How can you convert "tinyint" of t-sql to integer in c#?

C#Sql Server

C# Problem Overview


I have a tinyint column in the database and I wish to convert it to Int32 for an SqlDataReader.

How do i go about it?

Edit #1

I recently had to do this.

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

#In Addition to Answer

SQL Server Data Type Mappings

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

For more info visit - SQL Server Data Type Mappings

C# Solutions


Solution 1 - C#

What does it normally come back as - byte? If so, just do an unbox and then a convert:

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

or just let the conversion happen naturally:

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

or do the same with the strongly typed methods:

int x = reader.GetByte(column);

Adjust this to sbyte or short or whatever if I'm wrong about it mapping to byte. You could do the conversion at the SQL Server side, but I'd personally do it at the client side instead, and keep the SQL simpler.

Solution 2 - C#

Use "SByte" works every-time For handling the Tiny Int problem

Solution 3 - C#

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

Solution 4 - C#

To get a tinyint from a sql table i do the following:

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

Where retorno is a int variable.

I hope this help you.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionOrsonView Question on Stackoverflow
Solution 1 - C#Jon SkeetView Answer on Stackoverflow
Solution 2 - C#Pec1983View Answer on Stackoverflow
Solution 3 - C#Rajesh AbrahamView Answer on Stackoverflow
Solution 4 - C#Arnold Sandí CalderónView Answer on Stackoverflow