c#中某些数字,日期和电话号码使用的数据类型是什么?

时间:2011-03-16 13:28:03

标签: c# oracle

您好我在asp.net中有一个应用程序,其中包含四个文本字段,包括数字,金额,日期和电话。单击按钮时,这些值必须保存到Oracle数据库中。用于保存这些值的过程。在oracle数据库数据类型中,number列是类型number,amount列是类型number,date列是datetime类型,phonenumber是类型number。我正在对所有四个文本字段使用验证,以便这些值的格式正确。在我的代码中,我将数字,日期,电话作为字符串和数量传递为double。这是最好的实践吗?如果没有,任何人都可以建议我使用4个字段(数量,金额,日期和电话号码)的数据类型吗?

3 个答案:

答案 0 :(得分:1)

一般来说,您应该在C#中使用decimal来表示数据库中的number字段;在C#中使用DateTime来表示数据库中的datetime字段。

我不建议使用number字段来存储仅包含数字但不是实际数字的内容(如信用卡号,电话号码,邮政编码和SSN)。字符串(varchar)更好地代表这些值。

答案 1 :(得分:0)

将金额(假设这是货币)存储为数字(14,2)或类似的东西。不要使用double,因为有些小数不能精确表示为double。在C#中使用十进制类型,在Oracle中使用数字类型。

另见: Is a double really unsuitable for money?

答案 2 :(得分:0)

如果有效,那就是“足够好”的做法。你不是在循环中做了这么多次,所以效率不是问题。您正在做的事情清晰易懂,非常适合您正在处理的数据类型。日期和电话号码格式在编辑时很棘手。您是否需要处理国际日期(世界上大部分时间都喜欢dd-mm-yy)和非美国电话号码?我喜欢你的数据类型。