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 -> Tools -> SQL Profiler から始めます。データベースをポイントして、アップロードを再度実行してください。アプリにエラーが表示されたら一時停止または停止を押し、トレース ウィンドウ内でエラー メッセージを検索します。これにより、このメッセージを生成した SQL が得られます。解決策がすぐに見つからない場合は、投稿を編集して、失敗したステートメントを追加してください。

プロファイラーのリソースを次に示します。

SQL Server プロファイラーのステップ バイ ステップ

方法: SQL プロファイラーを使用する

于 2012-05-10T20:53:47.907 に答える