我正在阅读一个文本文件,其中包含有关文件名,文件路径,文件大小和修改日期的信息。
我能够选择所有必需的数据并将其成功存储在数据表中,然后使用Stored Procedure
将其存储到SQL Server中。但是,在某个点(或某行),我选择的是Filesizeize-Entry,它的字符串类似于(333,461)
而不是333,461
,以将该值存储到SQL Server中,我需要将其转换为float并将此值除以1000(以千字节为单位的字节)。我当前的(缩短的)代码是:
var Txtfile = File.ReadLines(@"C:\Users\[Path to my File]")
.Where(s => (s.StartsWith("20") && s.Split(new char[] { ' ' }, 5, StringSplitOptions.RemoveEmptyEntries)[2] != "<DIR>")
|| Regex.Match(s, @"^\s.{1}:.*").Success);
变量Txtfile
现在是一个字符串数组,第3个条目是“文件大小”。然后,我使用以下命令编辑该值:
(float)(Math.Truncate((Convert.ToDouble(Txtfile[2]) / 1000F)))
直到我遇到括号“(somevalue)”中的值为止,此方法一直有效。
所以我尝试了Txtfile[2] = Txtfile[2].Replace("(", "").Replace(")", "");
运行代码后,我的应用程序进入中断模式,将不会执行任何操作,继续执行我的应用程序将不会有任何结果。 有人知道该怎么做吗?
引发异常:托管调试助手“ ContextSwitchDeadlock” 启用它并不能解决问题。
然后我将得到以下异常:
System.Data.SqlClient.SqlException:'字符串或二进制数据将被截断。 表值参数“ @MyTableType”的数据不符合该参数的表类型。 SQL Server错误为:8152,状态:10
那意味着我不能将已编辑(删除的'('和')')字符串转换为float?