C # 3.0 Сохранение itextsharp pdf в базе данных с помощью MemoryStream

Я пытаюсь сохранить в базе данных файл PDF, созданный itextsharp. Но до сих пор я не добился успеха.

Я использую Linq для sql.

Вот код:

            MemoryStream ms = new MemoryStream();
            Document d = new Document(PageSize.A4, 60, 60, 40, 40);
            PdfWriter w = PdfWriter.GetInstance(d, ms);
            w.CloseStream = false;

            string txtTemplate = "";
            Encoding en = Encoding.GetEncoding("iso-8859-1");
            StreamReader sr = new StreamReader(HttpContext.Current.Server.MapPath("~/Content/templates/CessaoDireitosDica.txt"), en);
            txtTemplate  = sr.ReadToEnd();
            sr.Close();
            string conselhos = "";

            Font font = new Font(Font.HELVETICA, 11, Font.NORMAL);
            font.SetColor(0xC6, 0xC6, 0xC6);

            Paragraph txtBody = new Paragraph(txtTemplate, font);

            txtBody .SetAlignment(ElementTags.ALIGN_JUSTIFIED);

            d.Open();
            d.Add(txtBody);
            d.Close();

            byte[] pdfDone = ms.ToArray();
            w.Flush();
            ms.Flush();
            ms.Close();

            return pdfDone;

Он не выдает ошибок, но ничего не сохраняет в БД. Поле БД относится к типу поля «изображение». Я также использую этот код для рендеринга pdf на лету (я отрезал byte [] pdfDone ... и возвращаю MemoryStream).

Я не знаю, что может быть не так ... И при отладке я также мог видеть, что byte [] pdfDone имеет значение (что-то вроде 3487), но в БД ничего не сохраняется.

Заранее спасибо!


person André Miranda    schedule 03.09.2009    source источник
comment
Я не вижу там какого-либо кода базы данных. Я также рекомендовал бы использовать операторы using вместо всего ручного закрытия ... кроме этого, похоже, что это действительно проблема itextsharp.   -  person Jon Skeet    schedule 03.09.2009
comment
К сожалению, iTextSharp не реализует IDisposable, но я согласен с отсутствием кода базы данных.   -  person C. Ross    schedule 03.09.2009
comment
Этот код является частью метода, который возвращает массив байтов для сохранения. Код базы данных здесь не показан, и код правильный. Я обнаружил ошибку. Это была транзакция, которую я использовал. Спасибо за ответы.   -  person André Miranda    schedule 03.09.2009