下载代码 - Linq C#

时间:2012-05-21 06:07:21

标签: c# winforms

我有这个代码工作,它将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());
        }

1 个答案:

答案 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存储在临时文件中。