我在将t-sql中的smallint转换为C#中的整数时遇到问题。
请有人帮我解决这个问题吗?
更新#1
我真正想做的是从sqlserver 2005中标记为smallint的列中的数据从datareader中检索到我的应用程序中。对不起,我以前不太清楚。
答案 0 :(得分:10)
不太确定您遇到了什么问题,因为smallint中的数字范围是整数值范围的一个子集。
c#中的标准转换应该有效:
int intFromSmallInt = Convert.ToInt16(smallint);
错误是来自ORM吗?
答案 1 :(得分:8)
还有C#DataType“ short ”,它是System.Int16(SQL Server中的a.k.a.“ smallint ”)。
我更喜欢使用“短片”,因为我觉得它看起来更酷,没有其他原因。
另外,我会使用以下内容来提取您的数据(如果它可以为空):
short? sVal = dr["ColName"] is System.DBNull ? null : (short?)(dr["ColName"]);
答案 2 :(得分:-4)
int? value = (int?)(row["ColumnName"] as short?);