在ASP.NET MVC3中上传文件时,“字符串或二进制数据将被截断”

时间:2012-05-10 20:38:24

标签: asp.net sql-server asp.net-mvc-3 sql-server-2008 linq-to-sql

我正在ASP.NET MVC3中开发一些应用程序并尝试在SQL Server 2008中上传一些文件,我在DB中有类型varbinary(MAX),我有下面的代码用于上传它,但是我收到了错误“字符串或二进制数据将被截断。语句已被终止”,我认为这是一个数据库错误,您认为我的问题在哪里?感谢

if (UploadedFile != null)
            {
                App_MessageAttachment NewAttachment= new App_MessageAttachment { FileName = UploadedFile.FileName, FilteContentType = UploadedFile.ContentType, MessageId = NM.Id, FileData = new byte[UploadedFile.ContentLength] };
                UploadedFile.InputStream.Read(NewAttachment.FileData, 0, UploadedFile.ContentLength);
                db.App_MessageAttachments.InsertOnSubmit(NewAttachment);
                db.SubmitChanges();
            }

2 个答案:

答案 0 :(得分:4)

这是一个数据库错误,但它不一定与插入的文件部分相关联。检查以确保FileName,FileContentType和MessageId都足够短,以适合数据库中的字段。

答案 1 :(得分:0)

我将从Management Studio开始 - >工具 - > SQL事件探查器。 将其指向您的数据库并再次运行上载。在应用程序中看到错误后按暂停或停止,并在跟踪窗口中搜索错误消息。这将为您提供生成此消息的SQL。如果解决方案没有立即显示给您,请使用失败的语句编辑您的帖子。

以下是一些Profiler资源

SQL Server Profiler Step by Step

How To: Use SQL Profiler