如何将t-sql的“tinyint”转换为c#中的整数?
我有一个tinyint
列在数据库中,我希望将其转换为Int32
的SqlDataReader
。
我如何去做呢?
编辑#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);
调整这个sbyte
或short
或什么,如果我错了它映射到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。
我希望这可以帮助你。