Neler yeni
Türkiye'nin En Güncel Forum Sitesi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

/ Veritabanını Excel'e Aktarma /

ByOnur58

Kayıtlı Üye
MFC Üyesi
  • Üyelik Tarihi
    7 Ocak 2015
  • Mesajlar
    2,113
  • MFC Puanı
    10
  • MFC Seviyesi

Öncelikle herkese merhaba,

Bu derste bağlantı açtığımız MSSQL veritabanının Excel programına aktarılmasını göstereceğim.

Programda Excel'e aktarırken veritabanımızdaki tablo isimlerini öğreneceğiz. Daha sonra bu tabloları sorguyla datagridview'da göstereceğiz. Ardından datagridview'i Excel'e aktaracağız.

Şimdi kodlara bakalım.

Kod:
using System.Data.SqlClient;
using Excel=Microsoft.Office.Interop.Excel;


Öncelikle bu kütüphaneleri projemize ekliyoruz.

Kod:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SqlConnection con = new SqlConnection();
private **** Form1_Load(object sender, EventArgs e)
{
con.ConnectionString="Data Source=KAFKEFSQLEXPRESS;Initial Catalog=database;Integrated Security=True;Pooling=False";

}

private **** btn_Aktar_Click(object sender, EventArgs e)
{
//tablo isimlerini listeliyoruz....
SqlCommand comm = new SqlCommand("Select*from sys.tables",con);
SqlDataReader rdr = comm.ExecuteReader();
while (rdr.Read())
{
comboBox1.Items.Add(rdr.GetValue(0).ToString());

}
DataGridView dt = new DataGridView();
rdr.Close();

//excele aktarma işlemi yapılıyorrr...
///excel uygulaması olusturuluyorr....
Excel.Application excelApp = new Excel.Application();
excelApp.Workbooks.Add();
//sayfalar ekleniyor...
int k = comboBox1.Items.Count-3;
for (int i = 0; i < k; i++)
excelApp.Worksheets.Add();
//sayfa isimleri tablo isimlerine eşitleniyor...
for (int i = 1; i <= k + 3; i++)
{
excelApp.Worksheets.Name = comboBox1.Items[i - 1].ToString();
}
//tablolar datagride aktrama işlemi yapılıyorr...
for (int s = 1; s <= k + 3; s++)
{
DataTable table = new DataTable();
DataSet ds = new DataSet();
string sorgu = "Select*From @table";
sorgu = sorgu.Replace("@table", comboBox1.Items[s-1].ToString());
SqlDataAdapter adp = new SqlDataAdapter(sorgu,con);
adp.Fill(ds, comboBox1.Items[0].ToString());
dt.DataSource = ds.Tables[comboBox1.Items[0].ToString()];
adp.Dispose();
excelApp.Worksheets.Activate();
for (int i = 0; i <dt.Columns.Count; i++)
{
excelApp.Cells[1, i + 1].value = dt.Columns.HeaderText;
}
for (int i = 0; i < dt.Columns.Count; i++)
{
for (int j = 0; j < dt.Rows.Count; j++)
{
excelApp.Cells[j + 2, i + 1] = dt[i, j].Value;
}
}
excelApp.Visible = true;
excelApp.Worksheets[1].Activate();

}

}
}
}
 
Üst Alt