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?
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.
int RetValue;
RetValue = (int)(byte)dt.Rows[A][B] // A = RowNo , B = 'tinyint' Column Name.
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.
Use "SByte" works every-time For handling the Tiny Int problem