2011-03-16 18 views
2

您好我有一個在asp.net中的應用程序,其中包含數字,金額,日期和電話四個文本字段。單擊按鈕時,這些值必須保存到Oracle數據庫中。使用過程來保存這些值。在oracle數據庫中,數據類型是,數字列是數字類型,數量列是數字類型,日期列是類型日期時間,電話號碼是數字類型。我正在對所有四個文本字段使用驗證,以便這些值的格式適當。在我的代碼中,我將數字,日期,電話作爲字符串傳遞,數量爲雙倍。這是最好的實踐嗎?如果不是,任何人都可以向我建議我必須使用4個字段(數字,金額,日期和電話號碼)的數據類型?什麼數據類型用於在C#中的某些號碼,日期和電話號碼?

+1

好吧,我會說電話號碼應該是一個字符串,如果你想保存它的格式:+49 005 544 5454或任何其他與前導零... – 2011-03-16 13:34:42

回答

0

如果它的工作原理,它是 「足夠好」 的做法。循環中你不會這麼做一次,所以效率不是問題。您所做的事情清晰易懂,非常適合您處理的數據類型。日期和電話號碼格式在編輯時非常棘手。你是否必須處理國際日期(全球大部分地區喜歡dd-mm-yy)和非美國的電話號碼?我喜歡你的數據類型。

+0

感謝您的回覆。 – john 2011-03-16 14:42:39

1

一般來說,您應該使用C#中的decimal來表示數據庫中的number字段;在C#中使用DateTime來表示DB中的datetime字段。

我不建議使用number字段來存儲只包含數字但不是實際數字的內容(如信用卡號碼,電話號碼,郵政編碼和SSN)。字符串(varchar)可以更好地表示這些值。

+0

oracle沒有datetime數據類型,日期數據類型保存日期和時間。 – Jamiegs 2011-03-16 13:41:19

+0

@Jamiegs:OP聲明「日期列是datetime類型」,所以我只是重複他們所說的。 – Gabe 2011-03-16 13:55:39

0

將金額(假定是貨幣)存儲爲數字(14,2)或類似的東西。不要使用double,因爲有些小數不能精確地表示爲double。在C#中使用小數類型,而在Oracle中使用數字類型。

參見: Is a double really unsuitable for money?