我有这个代码工作,它将PDF文档上传到SQL Server express,并将其显示给DataGridView。如何下载或查看(默认为pdf阅读器)上传的文件?
我找到的大多数代码片段都是针对ASP.NET的;这是Winforms。谢谢。
private void btnSave_Click(object sender, EventArgs e)
{
if (docnoTextBox.Text == "" && docfromTextBox.Text == "")
{
MessageBox.Show("Cannot save empty strings");
}
else
{
try
{
iteisDataContext das_db = new iteisDataContext();
Document newDoc = new Document();
newDoc.docid = docnoTextBox.Text;
newDoc.docdate = docdateDateTimePicker.Value;
newDoc.postdate = DateTime.Now;
newDoc.doctype = cboDocType.Text;
newDoc.docfrom = docfromTextBox.Text;
//Convert string to linq.binary
Binary pdfFile = new ASCIIEncoding().GetBytes(ofdMain.FileName);
// And back to string - dae pa ini confirmado!
//string fileUpload = Encoding.ASCII.GetString(pdfFile.ToArray());
newDoc.docupload = pdfFile;
newDoc.docsubject = docsubjectTextBox.Text;
newDoc.notes = notesTextBox.Text;
// Update database
das_db.Documents.InsertOnSubmit(newDoc);
das_db.SubmitChanges();
MessageBox.Show("Document Saved.", "Success",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
答案 0 :(得分:2)
在WinForms中,您可以使用Acrobat reader ActiveX控件(添加参考 - > COM组件 - > AcroPDF.PDF
)直接在应用程序中显示PDF文件。这需要在客户端计算机上安装Adobe Reader:
var pdf = new AxAcroPDF();
pdf.LoadFile(@"c:\test.pdf");
另一种可能性是使用Process.Start方法在客户端计算机上使用默认程序打开PDF:
Process.Start(@"c:\test.pdf");
在这两种情况下,您需要在从数据库中读取PDF后将PDF存储在临时文件中。