2012-05-21 34 views
-1

我有這段代碼工作,它將一個PDF文檔上傳到SQL Server Express,並將其顯示給DataGridView。我如何下載或查看(默認PDF閱讀器)上傳的文件?下載代碼 - Linq C#

我發現的大部分代碼片段都是針對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()); 
     } 
+4

什麼是LINQ與此有關? –

回答

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從數據庫中讀取後將其存儲在臨時文件中。

+0

打敗了我一秒。從我+1。 –

+0

你好Darin,請發表一個示例如何使用這一行代碼來查看或從sql server下載文件。 「string fileUpload = Encoding.ASCII.GetString(pdfFile.ToArray()); 」而這個「Process p = new Process();」。謝謝,我還在學習 – RIchard