ben

OMÜ , Bilgisayar Mühendisliği, 13'

25 Ocak 2013 Cuma

Excel'den veritabanına veri kaydı

    Excel tablomuzadki verileri bazı kodlarla veritabanına kaydedbilririz. Bu yazımızda örnek veritabanı sorgularımız entity Framework Linq sorgulamalardır. Ve kodları belli bir şablondaki excel tablosu için tasarladı. Mantığı anlaşıldıktan sonra her türlü excel tasarımına göre kodlar düzenlenebilir. Kodların uygulanacağı örnek excel tasarımı;

örnek veritabanımız ise:
      linq sorgulamarın nasıl yapıldığı konusunda burda pek üzerine durmayacağım bunun için linq sorgulamalar bölümüne bakın.
   Demo programın tasarım görüntüsü:

    Burada excelden bilgileri gride griddende veritabanına kayıt işlemini gerçekleştircez. excelden dosya al butonunun click olayına aşağıdaki kodları yazalım.

OpenFileDialog opd = new OpenFileDialog();
private void button2_Click(object sender, EventArgs e)
{
    opd.Title = "Lütfen Dosya Seçiniz";
    opd.Filter = "Excel Dosyaları|*.xls;*.xlsx";
    if (opd.ShowDialog() == DialogResult.OK) // alınan dosyayı datagride aktar.
   {
       string cs = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended  
       Properties=\"Excel 12.0 Xml;HDR=YES\";", opd.FileName);
      OleDbConnection _cn = new OleDbConnection(cs);
      OleDbCommand _cmd = new OleDbCommand("SELECT * FROM [Sayfa1$]", _cn);
      OleDbDataAdapter _da = new OleDbDataAdapter(_cmd);
      DataTable _dt = new DataTable(); _cn.Open();
      _da.Fill(_dt);
      _cn.Close();
      dataGridView1.DataSource = _dt;
    }
}

     Bu kodlarda excel dosyasındaki veriler opd dğişkeninden datagrid nesnesine atıldı. Kaydet butonu ilede veritabanına kaydını yapalım.


private void button1_Click(object sender, EventArgs e)
{
     try
    {
        string setadi = Path.GetFileNameWithoutExtension(opd.FileName);//uzantısız dosya adı(set adı)
        string setbarkod = liste[0].ToString();//bu değişken birbirnden farklı barkod numaralarını tutar
        TBL_SET_e.srgset_ekle(setbarkod, setadi); // bu linq sorgusudur
        liste.RemoveAt(0);
         for (int i = 0; i < dataGridView1.RowCount; i++)
         {    
             if (dataGridView1.Rows[i].Cells[0].Value.ToString() == "1")// alet listesinin baslangıcını bul
             {
                 for (int m = i; m < dataGridView1.RowCount; m++) //ALET listesinin baslangıcından sonuna kadar tara
                 {
                      string aletadi = dataGridView1.Rows[m].Cells[1].Value.ToString();
                      if (aletadi != "")
                      {
                           TBL_ALET_e.srgalet_ekle(liste[0].ToString(), aletadi, setbarkod); //linq sorgusu
                            liste.RemoveAt(0);
                       }
                  }
             }
      }
    }
   catch (Exception)
   {
       MessageBox.Show("hata!!!");
   }
}

Verilerin veritabanına kaydı bu kodla tamamlanır.

Hiç yorum yok: