Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在数据库中存储数据有时会导致数据损坏吗?_C#_Parsing_Exception Handling_String Parsing - Fatal编程技术网

C# 在数据库中存储数据有时会导致数据损坏吗?

C# 在数据库中存储数据有时会导致数据损坏吗?,c#,parsing,exception-handling,string-parsing,C#,Parsing,Exception Handling,String Parsing,我有一个字段作为字符串存储在数据库中。它实际上是一个逗号分隔的数字字符串,我将其转换为一个长列表。执行转换的代码行看起来有点像: TheListOfLongs = (from string s in StringFromDB.Split(',') select Convert.ToInt64(s)).ToList<long>(); return String.Join(",", TheListOfLongs.Select(x=> x.To

我有一个字段作为字符串存储在数据库中。它实际上是一个逗号分隔的数字字符串,我将其转换为一个长列表。执行转换的代码行看起来有点像:

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
语句),或者这是一种一万多亿类型的事件?

从数据库中选择不会损坏字符串

如果在传输过程中或类似情况下断开连接,则会引发异常

我不会担心损坏的数据本身。但是,您肯定需要处理更一般的情况,即无法解析应该是数字数据的内容


即使在最受控制的情况下,当您不能按预期的方式处理数据时,提供条件也是一种良好的编程实践。这对您的应用程序意味着什么,您需要做出决定。用
try..catch来包装语句将防止应用程序阻塞,但如果解析的列表稍后很关键,则可能不合适。

Convert.ToInt64上中断的记录是什么样子的?@yack:它不会中断(目前)。这是一个由逗号分隔的数字字符串:289833553575235334355434463634316941422353534…不,数据库不会在你背后任意“损坏数据”。是的,非法数据可能会进入数据库,除非您在“插入”或“更新”之前对其进行严格验证。是的,除非您绝对确定不会出错(著名的遗言!),否则您绝对应该在适当的位置编写正确的错误处理代码。嗯…为什么要投否决票?想解释一下吗?