Turkcell | Geleceği Yazanlar

Soru & Cevap

C# - OleDb Excel - Küçük bir hata

28.07.2017 - 11:54

Merhaba,

Aşağıdaki gibi bir kodum var, Veritabanından gelen veriyi Excel şablonuna(xlsm) aktarması gerekiyor.Boş Excel(xlsm) e aktarıyor ancak normal hazırdaki şablona aktarmıyor.

İnceleyip nerede hata yaptığımı ve nasıl düzeltebileceğimi söylermisiniz? Teşekkürler.

  var sfd = new SaveFileDialog();
            sfd.Title = "Excel'e Aktar";
            sfd.Filter = "Excel dosyaları|*.xlsm";
            if (sfd.ShowDialog() == DialogResult.OK)
            {

                File.WriteAllBytes(sfd.FileName, Properties.Resources.orj);

                OleDbConnection cn = new OleDbConnection($"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={sfd.FileName};Extended Properties = \"Excel 12.0 Xml;HDR=YES;IMEX=0\"; ");
                cn.Open();
                OleDbCommand cmd = new OleDbCommand("INSERT INTO [Montaj$]([MODEL],[BEDEN],[ADET]) VALUES (@Model, @Beden, @Adet)", cn);

                foreach (var item in dataSetMain1.Rapor1)
                {
                    cmd.Parameters.Clear();
                    cmd.Parameters.AddWithValue("@Model", item.STOKKODU);
                    cmd.Parameters.AddWithValue("@Beden", item.BEDEN);
                    cmd.Parameters.AddWithValue("@Adet", item.MIKTARI_2);
                    cmd.ExecuteNonQuery();
                }
                cn.Close();
                MessageBox.Show("ok");

            }

 

Aldığım hata şudur:

 

 

Bu hatayı veriyor MODEL alanı bulunamadı diyor ama oluşturulan dosyada mevcut :)

2577 Görüntülenme

1 Cevap

Ziya Orhan
04.12.2019 - 13:01

Merhaba, bildiğim kadarıyla OleDB excellin ilk satırından sonraki satırlarını veri olarak algılamaktadır. Bu nedenle belirli bir şablona veri eklemek istiyorsanız, sütun isimlerini ilk satıra yazmalısınız.

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.