我正在使用 Adobe PDF Reader 从我的计算机查看扫描的纸张,并尝试将其保存到我的 Windows 窗体应用程序中的数据库中。我使用打开文件对话框选择 PDF 文件,然后我需要将它保存在我的数据库中。我正在使用以下代码:private void btnPDF_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); if (ofd.ShowDialog() == DialogResult.OK) { PDFViewer.src = ofd.FileName; } }private void btnsave_Click(object sender, EventArgs e) { MemoryStream msins = new MemoryStream(); MemoryStream msid = new MemoryStream(); pictureInsurance.Image.Save(msins, pictureInsurance.Image.RawFormat); pictureIDIQAMA.Image.Save(msid, pictureIDIQAMA.Image.RawFormat); byte[] byteInsurance = msins.ToArray(); byte[] byteId = msid.ToArray(); FileStream fStream = File.OpenRead("C:\\myfile.pdf"); byte[] Doccontents = new byte[fStream.Length]; fStream.Read(Doccontents, 0, (int)fStream.Length); fStream.Close(); if (update == 1) { patient.ADD_PATIENT(textName.Text, Convert.ToInt32(textAge.Text), textMobile.Text, textEmail.Text, textaddress.Text, Convert.ToInt32(combogender.SelectedValue), textIDNO.Text, Convert.ToInt32(comboNat.SelectedValue), byteInsurance,byteId,Doccontents); MessageBox.Show("Patient Added Successfully", "ADD PATIENT", MessageBoxButtons.OK, MessageBoxIcon.Information);}当我使用固定路径时,它会将内容保存在数据库中:FileStream fStream = File.OpenRead("C:\\myfile.pdf");但是当我使用 Adobe PDF 阅读器的名称保存选定的 PDF 文件时,它会显示以下错误“在 mscorlib.dll 中发生‘System.ArgumentException’类型的未处理异常我需要对代码进行哪些更改来保存所选文件而不是 PDFViewer.src 或者我如何使用 byte[] 方法和内存流(如图像)将 PDF 保存在 SQL Server 数据库中?
1 回答

九州编程
TA贡献1785条经验 获得超4个赞
File.OpenRead() 的参数需要一个字符串。如果 PDFViewer.src 不是字符串类型而是 URI 类型(或类似类型),那么您会遇到您提到的问题。确保 PDFViewer.src 是一个字符串(包含有效的路径和文件名)或将其转换为字符串,如果可能的话:
FileStream fStream = File.OpenRead((PDFViewer.src).ToString());
或者
FileStream fStream = File.OpenRead((string)PDFViewer.src);
- 1 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消