我有一个网页,我已经迷上了 存储程序.在这SQL数据来源,我有一个参数,我要穿回存储程序的类型int。

ASP.NET 似乎想的默认 int32, 但该数量不得高于6。它是确定替代的ASP.NET 默认,并把在16或者会不会有一个冲突地方在路上?

说明:该数据库字段的长度为4和精确度为10,如果有差别的回答。

有帮助吗?

解决方案

如果你强迫它将例如一个字节的数量超过255你冒的风险的一个铸造的错误(和异常会被扔).但是如果你知道这事不会高于6,它不应该是一个问题。

如果是我,我只是用它作为一个正常的int,我不知道你节省很多,如果任何其他几个字节的通过使得一个字节。风险的异常被扔过高,你将失去所有的好处,使它变小。

其他提示

坚持int32。那是什么vb的"Integer"和SQL的INT是,无论如何。

你将不会获得任何显着改善性能通过使用一个指定列的值/字节或一个短暂/int16而不是int/int32。

实际上,头痛,你可能会在未来引起所有的铸造你可能要做的对象的期望int32s会让你发疯。

当你说DB领域具有长度的4,这意味着4个字节,这相当于一个Int32(4个字节=32bits)。这就是为什么你的专栏是正在返回作为一个int32。

有不同的 整的数据类型 在SQL服务器的-如果你一定的数量不得高于6,则应宣布所列在数据库作为一个"指定列的值",它使用一个单一的字节和可能持有的数值从0到255。然后SQL数据源应该将其转换为"字节的"数据类型,将收你的目的。

CLR"字节"==SQL"指定列的值"(1byte) CLR"短"(或int16)==SQL"smallint"(2字节) CLR"int32"==SQL"int"

编辑:只是因为你可以做一些事情,并不意味着你应该...我同意 迈克尔*哈伦, 开发头疼的管理这些不常见的数据类型超过了小的性能得到你想得到的,除非你正在处理的非常高性能软件(在这种情况下,为什么你会被使用ASP.NET?)

你不会节省很多,如果任何东西通过使用Int16在ASP侧。它仍然具有载到一个32位的注册,最终。

仅供参考,CLR地图int Int32国内反正。

使用任何你的 SQL服务器 存储程序的定义。如果它是一个 int 在SQL服务器,然后用Int32。网。smallint在SQL是 int16.

否则,就SQL服务器将只上转换自动、或引发错误的,如果它需要下变频。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top