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
Try using CAST(columnName AS INT) AS IntValue . e.g. OR you can use CONVERT(INT, columnName) AS IntValue .
The TINYINT data type is an integer value from 0 to 255. TINYINT is the smallest integer data type and only uses 1 byte of storage. An example usage of TINYINT is a person's age since no person reaches the age of 255.
Use the CAST() function to convert an integer to a DECIMAL data type. This function takes an expression or a column name as the argument, followed by the keyword AS and the new data type. In our example, we converted an integer (12) to a decimal value (12.00).
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With