![]() |
1
1
例如,如果强制将其设置为一个字节,并且数字超过255,则可能会发生强制转换错误(并引发异常)。然而,如果你知道它不会高于6,这应该不是一个问题。 如果是我的话,我会把它当作一个普通的int,我不确定你会通过把它变成一个字节来节省多少,除了几个字节。抛出异常的风险太高,如果将其缩小,您将失去所有好处。 |
![]() |
2
1
坚持使用int32。不管怎样,这就是vb的“整数”和SQL的INT。 如果使用tinyint/byte或short/int16而不是int/int32,则不会获得任何显著的性能改进。 事实上,你将来可能会遇到的麻烦是,你可能需要对那些期望int32s的对象进行所有的强制转换,这会让你发疯。 |
![]() |
3
1
当您说DB字段的长度为4时,这意味着4个字节,相当于Int32(4字节=32位)。这就是为什么要将列作为int32返回的原因。 有不同的 integer datatypes 在SQL Server中——如果您确定该数字不会超过6,则应将数据库中的列声明为“tinyint”,它使用单个字节,可以保存0到255之间的值。然后,SQL数据源应该将其转换为“byte”数据类型,这对于您的目的来说很好。 CLR“byte”==SQL“tinyint”(1字节) CLR“Short”(或int16)=SQL“smallint”(2字节) CLR“int32”==SQL“int” 编辑:仅仅因为你能做一些事情,并不意味着你应该——我同意 Michael Haren ,管理这些不太常见的数据类型所带来的开发难题超过了您将获得的微小性能增益,除非您正在处理非常高性能的软件(在这种情况下,您为什么要使用ASP.NET?) |
![]() |
4
1
在ASP端使用Int16不会节省很多钱。它最终还是必须将其加载到32位寄存器中。 |
![]() |
5
1
仅供参考,CLR在内部将int映射到Int32。 |
![]() |
6
1
SQL Server
已定义存储过程。如果它是一个
否则,SQLServer只会自动进行上转换,如果需要进行下转换,则会抛出一个错误。 |
![]() |
Haim Ohayon · 这些链接之间有什么区别? 3 年前 |