16 Eylül 2019 Pazartesi

Asp.NET Web Form'da Excel'den okuduğun veriyi mssql veri tabanına insert etme


       protected void btnUpload_Click(object sender, EventArgs e)
//FileUpLoad Nesnesine eklenen dosyayı kayıt etme işlemi
        {
            if (fluExcel.HasFile) //FileUpload nesnesinde dosya var mı kontrol ediyoruz
            {
                string fileExtension = System.IO.Path.GetExtension(fluExcel.FileName).ToLower();

                if (fileExtension == ".xls" || fileExtension == ".xlsx")
                {
                    string newFileName = new Guid().ToString() + fileExtension;

                    string filePath = System.IO.Path.GetFullPath(Server.MapPath("~/App_Data/"));

                    fluExcel.PostedFile.SaveAs(filePath + newFileName);

                 LoadExcel(newFileName);
                }
                else
                {
                    lblMesaj.Text = "Excel dosyası seçiniz!";
                }

            }

        }

        private void LoadExcel(string newFileName)
        {
            try
            {
                OleDbConnection oleDbConn = new OleDbConnection();
                string path = System.IO.Path.GetFullPath(Server.MapPath("~/App_Data/")) + newFileName;

                if (Path.GetExtension(path) == ".xls")

                {
                    oleDbConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties =\"Excel 8.0;HDR=Yes;IMEX=1\"; ");

                }

                else if (Path.GetExtension(path) == ".xlsx") //Ben .xlsx uzantılı dosya eklediğimde Microsoft.ACE.OLEDB.12.0 Sağlayıcısı Yerel Makine Kayıtlı Değil Hatası aldım .xls yüklediğimde çalıştı
                {
                    oleDbConn = new OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + path + ";Extended Properties = \"Excel 12.0 Xml; HDR = YES\";");
                }
                oleDbConn.Close();

                OleDbCommand cmd = new OleDbCommand();
                DataTable dt = new DataTable();
                cmd.Connection = oleDbConn;
                cmd.CommandText = "Select * from [Sayfa1$]"; //Excel'deki sayfa adı
                cmd.CommandType = CommandType.Text;

                OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);

                adapter.Fill(dt);

                grdExcel.DataSource = dt;
                grdExcel.DataBind();
            }
            catch (Exception)
            {
                throw;
            }
        }
private void ReadGridViewWriteSql(string newFileName)
SqlConnection baglanti = new SqlConnection(@"Data Source="";Initial Catalog="";User ID="";Password="";"); //Connection string cümleciğinizi uygun şekilde yazmalısınız.
                baglanti.Open();

                foreach (GridViewRow row in grdExcel.Rows)
                {
                    SqlCommand sorgu = new SqlCommand("insert into deneme (kolon1,kolon2) values ('" + row.Cells[0].Text + "','" + row.Cells[1].Text + "')", baglanti);
                    sorgu.ExecuteNonQuery();
                }
                baglanti.Close();
// https://www.youtube.com/watch?v=OWJnUwW307w adresinden izleyerek oluşturulmuş kodlardır. Dilerseniz izleyerek uygulamalı yapabilirsiniz.

Hiç yorum yok:

Yorum Gönder