none
SQL de kayıtlı olan pdf dosyasını c# kullanarak okuma RRS feed

  • Soru

  • Merhabalar,

    Aşağıdaki kodu kullanarak SQL veri tabanına PDF kaydedebiliyorum.

     OpenFileDialog openFileDialog1 = new OpenFileDialog();
                openFileDialog1.ShowDialog();
                using (SqlConnection connection = new SqlConnection("Data Source = 192.168.0.9, 1433; Network Library = DBMSSOCN; Initial Catalog = ALBAYRAK; User ID = begum.tasdelen; Password = 123456;"))
                {
                    SqlCommand cmd = new SqlCommand("insert into TEKLİF (PDF,URUNADI,FİRMA,BİRİMFİYAT) values (@content,@UA,@F,@BF)", connection);
                    cmd.Parameters.AddWithValue("@UA", cmbÜrün.SelectedItem.ToString());
                    cmd.Parameters.AddWithValue("@F", txtFirma.Text);
                    cmd.Parameters.AddWithValue("@BF", txtBrm.Text);
                    cmd.Parameters.AddWithValue("@content", File.ReadAllBytes(openFileDialog1.FileName));
    
                    connection.Open();
                    cmd.ExecuteNonQuery();
                    connection.Close();
                }

    SQL tablosu aşağıdaki gibi;

    Daha sonrasında başka bir formda ID bilgisine göre pdfin açılmasını istiyorum. Araştırmalarımdan sonuç alamadım. Yardımcı olursanız sevinirim. Şimdiden teşekkürler.

    6 Aralık 2018 Perşembe 08:02

Yanıtlar

  • Merhaba;

    //Veritabanından gelen byte türündeki veriyi alarak, PDF olarak kaydediyoruz.
    System.IO.File.WriteAllBytes(@"DosyaYolu\dosyaAdi.pdf", VeriTabanindenGelenBytes);
    
    //Kaydettiğimiz veriyi pdf görüntüleyicide açılmasını sağlıyoruz.
    Process.Start(@"DosyaYolu\dosyaAdi.pdf");


    İletişim

    • Yanıt Olarak İşaretleyen begtasdelen 7 Aralık 2018 Cuma 14:45
    6 Aralık 2018 Perşembe 12:43
    Moderatör
  • Estafurullah. Örnek kod yazdım, kendinize göre özelleştirebilirsiniz.

    byte[] VeriTabanindenGelenBytes;
            private void PDFGoster(string DosyaYolu)
            {
                try
                {
    
                    using (SqlConnection con = new SqlConnection(GeciciParametreler.Baglanti))
                    {
                        SqlCommand com = new SqlCommand("Select * from TabloAdiniz where Kosul=VerdiginizKosullar", con);
                        con.Open();
                        SqlDataReader dr = com.ExecuteReader();
                        if (dr.Read())
                        {
                            VeriTabanindenGelenBytes = (byte[])dr["PdfTutulanKolonAdi"];
                        }
                        con.Close();
                    }
                    if (VeriTabanindenGelenBytes.Length > 0)
                    {
                        System.IO.File.WriteAllBytes(DosyaYolu, VeriTabanindenGelenBytes);
                        Process.Start(DosyaYolu);
                    }
                }
                catch
                {
    
                }
            }
    


    İletişim

    • Yanıt Olarak İşaretleyen begtasdelen 7 Aralık 2018 Cuma 14:45
    7 Aralık 2018 Cuma 14:14
    Moderatör

Tüm Yanıtlar

  • Merhabalar,

    Aşağıdaki kodu kullanarak SQL veri tabanına PDF kaydedebiliyorum.

     OpenFileDialog openFileDialog1 = new OpenFileDialog();
                openFileDialog1.ShowDialog();
                using (SqlConnection connection = new SqlConnection("Data Source = 192.168.0.9, 1433; Network Library = DBMSSOCN; Initial Catalog = ALBAYRAK; User ID = begum.tasdelen; Password = 123456;"))
                {
                    SqlCommand cmd = new SqlCommand("insert into TEKLİF (PDF,URUNADI,FİRMA,BİRİMFİYAT) values (@content,@UA,@F,@BF)", connection);
                    cmd.Parameters.AddWithValue("@UA", cmbÜrün.SelectedItem.ToString());
                    cmd.Parameters.AddWithValue("@F", txtFirma.Text);
                    cmd.Parameters.AddWithValue("@BF", txtBrm.Text);
                    cmd.Parameters.AddWithValue("@content", File.ReadAllBytes(openFileDialog1.FileName));
    
                    connection.Open();
                    cmd.ExecuteNonQuery();
                    connection.Close();
                }

    SQL tablosu aşağıdaki gibi;


    Daha sonrasında başka bir formda ID bilgisine göre pdfi açmılmasını istiyorum. Araştırmalarımdan sonuç alamadım. Yardımcı olursanız sevinirim. Şimdiden teşekkürler.

    6 Aralık 2018 Perşembe 07:59
  • "pdfin açılmasını istiyorum"

    bunun anlamı nedir?

    Bilgisayardaki pdf dosyalarını okumakla görevli program ne ise onu çalıştırmak mı istiyorsunuz?


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    6 Aralık 2018 Perşembe 09:00
    Moderatör
  • SQL tablosunu datagrideview a çekiyorum. Satıra tıklandığında id ye göre, adobe veya başka program kullanarak seçili pdf in açılması gerekiyor. Kaydetmek isterse kendi bilgisayarına da kaydedebilmesi gerekiyor. 
    6 Aralık 2018 Perşembe 10:19
  • Merhaba;

    MSSQL'ye yazdığınız gibi veriyi çekip

    System.IO.File.WriteAllBytes(@"DosyaYolu\dosyaAdi.pdf", VeriTabanindenGelenBytes);

    şeklinde pdf'i kaydettirerek, Process ile pdf dosyasını çalıştırıp gösterebilirsiniz.


    İletişim

    • Yanıt Olarak İşaretleyen begtasdelen 7 Aralık 2018 Cuma 14:46
    • Yanıt İşaretini Geri Alan begtasdelen 7 Aralık 2018 Cuma 14:46
    6 Aralık 2018 Perşembe 10:31
    Moderatör
  • Merhaba Barış Bey,

    Process ile çalıştırıp göstermeyi nasıl yapacağım, açıklarsanız çok sevinirim. Teşekkürler.

    6 Aralık 2018 Perşembe 12:27
  • Merhaba;

    //Veritabanından gelen byte türündeki veriyi alarak, PDF olarak kaydediyoruz.
    System.IO.File.WriteAllBytes(@"DosyaYolu\dosyaAdi.pdf", VeriTabanindenGelenBytes);
    
    //Kaydettiğimiz veriyi pdf görüntüleyicide açılmasını sağlıyoruz.
    Process.Start(@"DosyaYolu\dosyaAdi.pdf");


    İletişim

    • Yanıt Olarak İşaretleyen begtasdelen 7 Aralık 2018 Cuma 14:45
    6 Aralık 2018 Perşembe 12:43
    Moderatör
  • Sql, server a kurulu durumda. Benim sql e yüklediğim pdf i başka makine de görebilmeli, bu sebepten ötürü Sql de kayıtlı veriyi sqlle bağlantı kurarak açmam gerekiyor.

    7 Aralık 2018 Cuma 10:56
  • Fark eden bir şey yok ki. Veriyi çekeceğiniz bir select ile binary veriyi alıp, örnek olarak verdiğim kodlarla PDF'e çevirip, daha sonrasında ise kullanıcıya göstereceksiniz. Takıldığınız yer tam olarak neresi?

    İletişim

    7 Aralık 2018 Cuma 11:13
    Moderatör
  • Merhaba tekrar,

    Çok bilgim yok kusura bakmayın sizi de uğraştırıyorum ama veritabanındangelenbytes kısmına ne yazacağım? 

    7 Aralık 2018 Cuma 13:56
  • Estafurullah. Örnek kod yazdım, kendinize göre özelleştirebilirsiniz.

    byte[] VeriTabanindenGelenBytes;
            private void PDFGoster(string DosyaYolu)
            {
                try
                {
    
                    using (SqlConnection con = new SqlConnection(GeciciParametreler.Baglanti))
                    {
                        SqlCommand com = new SqlCommand("Select * from TabloAdiniz where Kosul=VerdiginizKosullar", con);
                        con.Open();
                        SqlDataReader dr = com.ExecuteReader();
                        if (dr.Read())
                        {
                            VeriTabanindenGelenBytes = (byte[])dr["PdfTutulanKolonAdi"];
                        }
                        con.Close();
                    }
                    if (VeriTabanindenGelenBytes.Length > 0)
                    {
                        System.IO.File.WriteAllBytes(DosyaYolu, VeriTabanindenGelenBytes);
                        Process.Start(DosyaYolu);
                    }
                }
                catch
                {
    
                }
            }
    


    İletişim

    • Yanıt Olarak İşaretleyen begtasdelen 7 Aralık 2018 Cuma 14:45
    7 Aralık 2018 Cuma 14:14
    Moderatör
  • Gerçekten çok teşekkür ederim. Sağolun.
    7 Aralık 2018 Cuma 14:45
  • Gerçekten çok teşekkür ederim. Sağolun.

    Rica ederim.

    İletişim

    7 Aralık 2018 Cuma 14:57
    Moderatör