【问题标题】:Save created PDF to MySQL database C#将创建的 PDF 保存到 MySQL 数据库 C#
【发布时间】:2015-04-23 05:18:46
【问题描述】:

我希望能够将新创建的 PDF 存储在我的 MySQL 数据库的 BLOB 字段中。这是我到目前为止的代码,但它保存到本地磁盘:

        string fileName = employeeNo.ToString();
        MemoryStream ms = new MemoryStream();
        byte[] bits = new byte[0];

        Document doc = new Document();
        PdfWriter writer = PdfWriter.GetInstance(doc, ms);
        doc.Open();
        iTextSharp.text.Rectangle rec2 = new iTextSharp.text.Rectangle(PageSize.A4);
        doc.Add(new Paragraph(textBox2.Text));
        doc.Add(new Paragraph(textBox1.Text));
        doc.Close();
        bits.ToArray();

我该如何调整它以便将其插入到我的数据库中?然后该文件将被传递到插入语句中,如下所示:

myCmd.Parameters.AddWithValue("@feedbackComments", bits);

【问题讨论】:

  • 您不想将字节数组转换为字符串。您想将字节数组本身作为参数的值传递。此外,bits.ToString() 并没有做你显然认为它会做的事情。它只是返回字符串“System.Byte[]”。
  • 好吧,这是有道理的。我已经删除了 .ToString() 并且现在没有任何内容插入到数据库中。在它插入 System.Byte[] 之前,正如你所说,这并不是很有用。你知道它有什么问题吗?
  • 看起来bits 永远不会更新,bits.ToArray(); 是多余的。你的意思是bits = ms.ToArray(); ...?
  • 您没有将 ms 保存为位。在此之前,应将位初始化为 ms 所需的大小。

标签: c# mysql winforms pdf save


【解决方案1】:

关闭文档后,使用MemoryStream 代替FileStream 并使用ToArray() 提取字节数组。

使用字节数组填充表格。

【讨论】:

  • 好的,我已经编辑了上面的代码。我不确定我还需要改变什么。另外,如何命名将保存到数据库的文件?
  • 代码将数据插入数据库,但是当我尝试从数据库中打开它时,Adobe Reader 说文件不受支持或损坏/损坏
  • 正如 Gord Thompson 所说,你需要 myCmd.Parameters.AddWithValue("@feedbackComments", ms.ToArray());
  • 感谢您和 Gord 的建议,它奏效了!但是当文件插入数据库时​​如何指定文件名?
  • 您需要另一列作为文件名。
猜你喜欢
  • 1970-01-01
  • 2011-04-01
  • 2020-07-20
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 2012-10-02
相关资源
最近更新 更多