-1

このコードは機能しており、PDF ドキュメントを SQL Server Express にアップロードし、DataGridView に表示します。アップロードされたファイルをダウンロードまたは表示するには (デフォルトの pdf リーダーで) どうすればよいですか?

私が見つけたほとんどのコード スニペットは ASP.NET 用でした。これはウィンフォームです。ありがとうございました。

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

1 に答える 1

2

WinForms では、Acrobat リーダーの ActiveX コントロール (参照の追加 -> COM コンポーネント -> AcroPDF.PDF) を使用して、アプリケーション内で直接 PDF ファイルを表示できます。これには、Adobe Reader がクライアント コンピューターにインストールされている必要があります。

var pdf = new AxAcroPDF();
pdf.LoadFile(@"c:\test.pdf");

もう 1 つの可能性は、Process.Start メソッドを使用して、クライアント コンピューターの既定のプログラムで PDF を開くことです。

Process.Start(@"c:\test.pdf");

どちらの場合も、データベースから PDF を読み取った後、PDF を一時ファイルに保存する必要があります。

于 2012-05-21T06:14:27.627 に答える