繁体   English   中英

用于数字的正确数据类型是什么

[英]What is the correct data type to use for a number

我是MS Access 2007的新手,我正在使用Visual Studio 2010 C#创建一个应用程序。 我想知道我应该在我创建的每个参数中使用什么数据类型。

例如:

command.Parameters.Add(new OleDbParameter("?company_name", OleDbType.VarChar));

这是字符的数据类型(如果我错了,请纠正我)。

我的问题是,使用数字数据类型的数字的数据类型(例如:邮政编码和电话号码(221-0019))是正确的?

PS:我已经在MS Access中使用了我的表

使用适合您数据的任何数据类型。

例如,如果您需要一个列来存储0到100之间的整数,请使用DataTypeNumberFieldSizeByteFieldSize 对于0到10,000之间的Integer ,请使用Integer 对于介于-1,000,000,000和1,000,000,000之间的小数,请使用Single 请参阅DataTypeFieldSize的MSAcess帮助以查看适合您的数据的内容。

然后,在从C#操作数据库时,使用等效的OleDbType 请参阅OldDbType的帮助以确定哪个等效于MSAccess列中的数据类型。

例如(如上例所示) OleDbType.UnsignedTinyIntOleDbType.SmallIntOleDbType.Single

将数据值存储为数字或字符时,需要考虑一些事项。 您应该了解以下问题。

  1. 如果有人决定在拉链或电话号码中输入非数字字符,您会怎么做? 处理上述示例时,您需要删除电话号码的所有非数字字符,如(222)221-0019。 更好的解决方案是在将数据输入数据库之前清理数据,但将其作为字符存储仍然可以获得额外的好处。
  2. 排序。 请注意,订购字符与数字会产生一些不良后果。 请注意,数字1,11和2按字母顺序排序,与数字排序不同。 排序的alpha,正确的顺序是1,11,2。在数字上,它们被排序为1,2,1。这是在决定将数据值存储为数字或字符字段时的考虑因素。
  3. 空间。 将这些存储为整数将占用4个字节。 如果将它们存储为字符,则5位拉链需要5个字节,如果使用unicode则需要10个字节。 考虑到所有事情,你可能不会节省一个天文数量的空间,所以1和2应该是更大的考虑因素。

数据库是关于存储数据的。 您应该考虑存储值的意图。 通常,您只希望将事物存储为数字,如果它们是您希望进行数值运算的实际数值。 例如,金钱,年龄,就业年数。

至于通常所有数字的标识符,例如社会安全号码,街道号码,电话号码,这些根本不是数字。 它们只是偶然使用数字的“字符”值。 您希望将它们存储为字符的原因是,当从数据库中引入它们时,如果您希望主要执行基于字符的操作,则必须处理从数字到字符值的连续转换。

权衡利弊。 祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM