Gönderen Konu: Veri Tabanından Exele Aktarıp mail atma  (Okunma sayısı 1635 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Yasin_0023

  • İleti: 157
  • Puan: 148
  • Cinsiyet: Bay
    • SİYAHSERİT
Veri Tabanından Exele Aktarıp mail atma
« : Ağustos 20, 2008, 22:08:26 ÖS »
Bu sınıfta database bağlanıp çektiğiniz verileri exele aktara bilir ve isterseniz  mailgonder fonksiyonu yardımıyla mailde göndere bilirsiniz.
NOT: Projenize Microsoft.Office.Interop.Excel i referans olarak eklemelisiniz.


using System;
using System.Reflection;

using System.Net.Mail;
using Excel = Microsoft.Office.Interop.Excel;


namespace serdar
{

    public class DBdenExele     {

        private Excel.Application Excelim;
        private Excel.Workbook CalismaKitabi;
        private Excel.Worksheet CalismaSayfasi;
     public   String hata,constr,sqlstr,mailhost,xlsad,benimmailadr;

        public DBdenExele()
        { }

        public string DBdenExele(string sqls,string cons,string mhost,string xlad,string madd)
        {
           constr=cons;
           sqlstr=sqls;
           mailhost=mhost;
           xlsad=xlad;
           benimmailadr=madd;
        }

        public bool OkuVeYaz(System.Data.SqlClient.SqlDataReader drr, string CalismaSayfasiIsmi)
        {
            try
            {
               
                Excelim = new Excel.ApplicationClass();
                object SalakObje = System.Reflection.Missing.Value;
                CalismaKitabi = Excelim.Workbooks.Add(SalakObje);
                CalismaSayfasi = (Excel.Worksheet)CalismaKitabi.ActiveSheet;
                CalismaSayfasi.Name = CalismaSayfasiIsmi;
                int SutunIndex = 1;
                int SatirIndex = 2;
                // Stunlar Yazlyor. 
                for (int i = 0; i <drr.FieldCount ; i++)
                {
                    CalismaSayfasi.Cells[1, SutunIndex] ="KOLON_"+Convert.ToString(i);
                    SutunIndex++;
                }
                // Satrlar Yazlyor.
               while (drr.Read())
               {
                    for (int ci = 0; ci < drr.FieldCount; ci++)
                    {
                        //MessageBox.Show(Convert.ToString(ci) + "   >>>" + Satir.Cells[ci].Value.ToString()); 
                        CalismaSayfasi.Cells[SatirIndex, ci + 1] = drr[ci].ToString();
                    }
                    SatirIndex++;
                }

                CalismaKitabi.SaveAs(xlsad, SalakObje, SalakObje, SalakObje, SalakObje, SalakObje,
                Excel.XlSaveAsAccessMode.xlNoChange, SalakObje, SalakObje, SalakObje, SalakObje, SalakObje);
                CalismaKitabi.Close(false, SalakObje, SalakObje);
                Excelim.Quit();
                return true;
            }
            catch (Exception ex)
            {
                hata = ex.Message.ToString();
                return false;
            }
        }

        public  bool VeriTabBaglan()
        {

            try
            {
                System.Data.SqlClient.SqlConnection objConn = new System.Data.SqlClient.SqlConnection(constr);
                objConn.Open();

                System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sqlstr, objConn);
                System.Data.SqlClient.SqlDataReader dr;
                dr = cmd.ExecuteReader();
                return OkuVeYaz(dr, "veriler");
            }
            catch (Exception ex)
            {
                hata = ex.Message.ToString();
                return false;
            }
        }




        private string mailgonder(String mailadr)
        {
            MailMessage mail = new MailMessage();

            try
            {
                mail.To.Add(mailadr);
                mail.From = new MailAddress(benimmailadr);
                mail.Subject = "OTOMATK MAIL";
                mail.Body = "Bu mail  otomatik gnderilmektedir";
                mail.Attachments.Add(new Attachment(xlsad));
                SmtpClient istemci = new SmtpClient(mailhost);

                istemci.Port = 25;
                istemci.Host = mailhost;
                istemci.EnableSsl = false;
                istemci.Send(mail); // Maili gndermeyi deniyoruz.
                System.IO.File.Delete(xlsad);
                return (mailadr + " e Mail Gnderildi ");

            }
            catch (Exception ex) // herhangi bir hata olusursa bu durumda onu da yaziyoruz.
            {
                return ("HATA: " + ex.Message.ToString());
            }

        }
    }
}

 ;D SİYAHSERİT
Konuyu Paylaş:
  delicious  facebook  twitter  google
|www .siyahserit.tr.cx | 
|www .siyahserit.tr.gg  |  |www.uzmanweb.yetkinblog.com |  |www.uzmanweb.yetkinforum.com | |www.siyahserit.turkforumpro.com  |

 

Benzer Konular

  Konu / Başlatan Yanıt Son İleti
14 Yanıt
8209 Gösterim
Son İleti Şubat 22, 2010, 20:36:26 ÖS
Gönderen: burajan
3 Yanıt
1181 Gösterim
Son İleti Mayıs 18, 2007, 15:33:52 ÖS
Gönderen: ALpeR
2 Yanıt
3143 Gösterim
Son İleti Ocak 26, 2009, 14:04:40 ÖS
Gönderen: mehtap
16 Yanıt
2124 Gösterim
Son İleti Ekim 01, 2009, 19:56:35 ÖS
Gönderen: Tilsimli
0 Yanıt
1007 Gösterim
Son İleti Haziran 01, 2011, 00:09:25 ÖÖ
Gönderen: elit1grup