我在我的项目中使用 CSVReader 来读取 Windows 服务中的 .csv 文件。我们将 .csv 文件传递给 CSVReader 以处理文件,它工作正常。但最近我们决定将 csv 文件保存到数据库表并从那里读取。当用户提交 csv 文件进行处理时,我们的 aspx 页面将读取 csv 文件并将其转换为字节数组并保存到数据库中。服务将读取表并获取字节数组并将其转换为 Filestream。此流被传递给 CSVReader 以进行进一步的工作。现在它为最后一行最后一列抛出错误。它仅在保存并从数据库中读取后才会发生。我收到以下错误。不知道如何解决这个问题。
“CSV 在位置 '494' 的记录 '9' 字段 '3 附近似乎已损坏。当前原始数据:'
听到的是代码将文件转换为字节数组.....
try
{
fs = new FileStream(filepath, FileMode.Open);
fsbuffer = new byte[fs.Length];
fs.Read(fsbuffer, 0, (int)fs.Length);
}
从 DB 读取到字节数组......
myobject.FileByteArray = ObjectToByteArray(row);
public byte[] ObjectToByteArray(DataRow row)
{
if (row["fileBytearray"] == null)
return null;
try
{
BinaryFormatter bf = new BinaryFormatter();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
bf.Serialize(ms, row["fileBytearray"]);
return ms.ToArray();
}
}
Stream fileStream = new MemoryStream(myobject.FileByteArray)
using (CsvReader csv =
new CsvReader(new StreamReader(fileStream, System.Text.Encoding.UTF7), hasHeader, ','))