1

我正在 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();
            }
4

2 回答 2

4

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

于 2012-05-10T20:41:53.143 回答
0

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

以下是一些 Profiler 资源

SQL Server Profiler 一步一步

如何:使用 SQL 事件探查器

于 2012-05-10T20:53:47.907 回答