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ı;
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ü:
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:
Yorum Gönder