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

时间:2011-11-15 06:44:27

标签: c# database visual-studio-2010 ms-access types

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

例如:

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

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

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

P.S。:我已经在MS Access中拥有我的表

2 个答案:

答案 0 :(得分:1)

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

E.g。如果您需要使用列存储0到100之间的整数,请使用DataType NumberFieldSizeByte的字段。对于0到10,000之间的整数,请使用Integer。对于介于-1,000,000,000和1,000,000,000之间的小数,请使用Single。请参阅DataTypeFieldSize的MSAcess帮助,了解适合您的数据的内容。

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

E.g。 (根据以上示例)OleDbType.UnsignedTinyIntOleDbType.SmallIntOleDbType.Single

答案 1 :(得分:1)

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

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

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

    权衡利弊。祝你好运!