我正在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();
}
答案 0 :(得分:4)
这是一个数据库错误,但它不一定与插入的文件部分相关联。检查以确保FileName,FileContentType和MessageId都足够短,以适合数据库中的字段。
答案 1 :(得分:0)
我将从Management Studio开始 - >工具 - > SQL事件探查器。 将其指向您的数据库并再次运行上载。在应用程序中看到错误后按暂停或停止,并在跟踪窗口中搜索错误消息。这将为您提供生成此消息的SQL。如果解决方案没有立即显示给您,请使用失败的语句编辑您的帖子。
以下是一些Profiler资源