У меня есть поле, которое хранится в базе данных в виде строки. Это фактически разделенная запятыми строка чисел, которую я конвертирую в список длин. Строки кода, которые делают преобразование выглядеть примерно так:может хранить данные в базе данных, иногда приводит к повреждению данных?
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
@Yuck: ну это не сломается (на данный момент). Это строка числа, разделенная запятыми: 28983,3553,57523,5334,35543,4636343,16941,4223,53534 .... – frenchie
Нет, база данных не будет произвольно «повреждать данные» за вашей спиной. Да, незаконные данные могут попасть в базу данных, если вы строго не подтвердите ее до «вставки» или «обновления». [GIGO] (http://en.wikipedia.org/wiki/Garbage_in,_garbage_out). И да, если вы абсолютно не уверены, что * ничего * будет * когда-либо ошибаться (знаменитые последние слова!), Вы должны обязательно скопировать правильную обработку ошибок в соответствующем месте. ИМХО ... – paulsm4