Загрузка вложения на сервер sql с использованием LINQ - PullRequest
0 голосов
/ 20 августа 2010

Загрузка файлов из asp.net в SQL Server 2008, после загрузки в SQL Server я вижу содержимое вложения: 0x89

Моя хранимая процедура принимает: @AttachContent varbinary,

Ниже мой код, как я загружаю.

public bool AttachmentInsert(int mimeTypeId, string attachFileName,
                             byte[] attachContent)
{
   using (DataContextDataContext dc = conn.GetContext())
   { 
      int attachId =  (int)dc.spAttachment_Insert(mimeTypeId, attachFileName, 
                                                  attachContent).ReturnValue; 
      if (attachId != 0)
      {
         return true;
      }
      return false;
   }
}

[Function(Name="dbo.spAttachment_Insert")]
public ISingleResult<spAttachment_InsertResult> spAttachment_Insert(Name="AttachContent", DbType="VarBinary(1)")] System.Data.Linq.Binary attachContent,        
{
   IExecuteResult result = 
       this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), 
                              mimeTypeID, attachFileName, attachContent);
   return ((ISingleResult<spAttachment_InsertResult>)(result.ReturnValue));
} 

Любая помощь, как исправить.

1 Ответ

3 голосов
/ 20 августа 2010
DbType="VarBinary(1)"

Вы усекаете содержимое до 1 байта.Вместо этого используйте VarBinary(max).

...