用于将 smallint 转换为 int 的数据行字段扩展方法

本文关键字:数据 字段 扩展 方法 int smallint 转换 用于 | 更新日期: 2023-09-27 18:32:38

我在SQL Server中有一列smallint类型。我按 Ado.net 阅读了包含此字段的行。

当我得到该 SQL Server 行DataRow时,我尝试将其转换为整数,如以下代码所示:

int value = datarow.Field<int>("myColumnName");

因为领域smallint,我觉得应该改int。但它抛出了一个例外,说

指定的强制转换无效.....

我不想使用Convert.ToInt32或其他功能。我想使用数据行的字段扩展方法。我该怎么做?
编辑:

datarow.Field<int>("myColumnName"); // doesnt work
datarow.Field<Int16>("myColumnName"); // doesnt work
datarow.Field<short>("myColumnName"); // doesnt work
Convert.ToInt32(datarow["myColumnName"]) // works but i dont want it

用于将 smallint 转换为 int 的数据行字段扩展方法

请参阅 SQL Server 数据类型映射 (ADO.NET)。

SMALLINT 是 SQL Server 中的 16 位整数,因此它映射到 .NET 中的Int16

因此,您应该使用

Int16 value = datarow.Field<System.Int16>("MyColumnName")

读取值

使用,数据行。字段("myColumnName");