我有一個字段作爲字符串存儲在數據庫中。它實際上是一個逗號分隔的字符串,我將其轉換爲長整型列表。的代碼做轉換的線條看起來有點像這樣:可以將數據存儲在數據庫中有時會導致數據損壞?
TheListOfLongs = (from string s in StringFromDB.Split(',')
select Convert.ToInt64(s)).ToList<long>();
創建數據庫存儲字符串的代碼如下所示:
return String.Join(",", TheListOfLongs.Select(x=> x.ToString()).ToArray());
這工作得很好,但你可以看到,如果出於某種原因,字符串出現問題,第一行代碼中的代碼中斷了Convert.ToInt64(s)
。
現在我知道我可以換這一切都圍繞着try
聲明,但我的問題是這樣的:可以存儲和檢索數據庫中損壞的字符串的字符串(在這種情況下,我肯定需要try
語句)或這是一個一萬億奇數類型的事件?
記錄是什麼樣的「打破'Convert.ToInt64(s)'」? – Yuck 2013-02-12 19:07:55
@Yuck:好吧,它不會中斷(現在)。這是一串以逗號分隔的數字:28983,3553,57523,5334,35543,4636343,16941,4223,53534 .... – frenchie 2013-02-12 19:09:39
不,數據庫不會隨意地將背後的「數據損壞」。是的,非法數據可以進入數據庫,除非在「插入」或「更新」之前嚴格驗證它。 [GIGO](http://en.wikipedia.org/wiki/Garbage_in,_garbage_out)。是的,除非你絕對確定*沒有*會出現任何錯誤(着名的遺言!),你應該在適當的地方編碼正確的錯誤處理。恕我直言... – paulsm4 2013-02-12 19:13:19