Skip to main content

Import Data from Excel to SQL Server ASP.NET MVC


I want to save the excel sheet data in my SQL or other database. In this sheet you just mind the name of the table Sheet1.







Now the controller



  public ActionResult ManualAttendence()  
     {  
       return View();  
     }  



And the ManualAttendence view



 @using (Html.BeginForm("ManualAttendence", "AttendanceManual", FormMethod.Post, new { enctype = "multipart/form-data" }))  
 {  
   <input type="file" name="file" />  
   <input type="submit" value="OK" />  
 }  



Create a new folder name ManualAttendenceSheet in your solution App_Data folder.
Now brows the file & click ok



 [HttpPost]  
     public ActionResult ManualAttendence(HttpPostedFileBase file, AttendanceManualModels model)  
     {  
       int returnValue = 0;  
       // Verify that the user selected a file  
       if (file != null && file.ContentLength > 0)  
       {  
         // extract only the fielname  
         var fileName = Path.GetFileName(file.FileName);  
         // store the file inside ~/App_Data/uploads folder  
         var path = Path.Combine(Server.MapPath("~/App_Data/ManualAttendenceSheet"), fileName);  
         file.SaveAs(path);  
         //string pathName = "~/App_Data/uploads/'" + fileName + "'";  
         string pathName = Server.MapPath("~/App_Data/ManualAttendenceSheet/" + fileName);  
         string workSheetName = "Sheet1";  
         string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathName + ";Extended Properties=Excel 12.0;Persist Security Info=False";  
         //Create Connection to Excel work book  
         OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);  
         //Create OleDbCommand to fetch data from Excel  
         string query = string.Format("SELECT * FROM [{0}$]", workSheetName);  
         DataSet data = new DataSet();  
         using (System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(excelConnectionString))  
         {  
           con.Open();  
           System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter(query, con);  
           adapter.Fill(data);  
           returnValue = AttendanceManualBLL.SaveAttendenceManual(data, "I");  
         }  
         if (returnValue < 0)  
         {  
           model.Message = "Transection Error...!";  
         }  
         else  
         {  
           ModelState.Clear();  
           model = new AttendanceManualModels();  
           model.Message = "Manual Leave saved successfully...!";  
         }  
       }  
       return RedirectToAction("ManualAttendence");  
     }  



Now AttendanceManualBLL:  



 public class AttendanceManualBLL  
   {  
     public static List<AttendenceManual> PreocessData(DataSet data)  
     {  
       List<AttendenceManual> _AttendenceManualList = new List<AttendenceManual>();  
       for (int i = 4; i < data.Tables[0].Rows.Count; i++)  
       {  
         AttendenceManual Student = new AttendenceManual();  
         Student.StrEmpID = data.Tables[0].Rows[i][1].ToString();  
         Student.StrEmpCardNo = data.Tables[0].Rows[i][2].ToString();  
         Student.StrAttendanceDeviceNo = data.Tables[0].Rows[i][3].ToString();  
         Student.StrEmpName = data.Tables[0].Rows[i][4].ToString();  
         Student.StrDesignation = data.Tables[0].Rows[i][5].ToString();  
         Student.StrFunctionalDesignation = data.Tables[0].Rows[i][6].ToString();  
         Student.StrMobileNo = data.Tables[0].Rows[i][7].ToString();  
         Student.AttendanceBonusDeduction = data.Tables[0].Rows[i][8].ToString();  
         Student.StrInTime = data.Tables[0].Rows[i][9].ToString();  
         Student.StrOutTime = data.Tables[0].Rows[i][10].ToString();  
         Student.StrEntryDate = data.Tables[0].Rows[i][11].ToString();  
         Student.InTime = Convert.ToDateTime(Student.StrInTime);  
         Student.OutTime = Convert.ToDateTime(Student.StrOutTime);  
         Student.EntryDate = Convert.ToDateTime(Student.StrEntryDate);  
         _AttendenceManualList.Add(Student);  
       }  
       return _AttendenceManualList;  
     }  
     public static int SaveAttendenceManual(DataSet data, string mode)  
     {  
       List<AttendenceManual> _AttendenceManualList = new List<AttendenceManual>();  
       _AttendenceManualList = PreocessData(data);  
       int i = 0;  
       if (_AttendenceManualList.Count > 0)  
       {  
         foreach (AttendenceManual item in _AttendenceManualList)  
         {  
           i = AttendanceManualDAL.SaveAttendenceManual(item, mode);  
         }  
       }  
       return i;  
     }  
   }  



In AttendanceManualBLL class I set the dataset value in my list. Now I can save value from my list in database.

Note:
#1.in for loop i start from, because of i want to read my excel sheet from row 4.
int i = 4




Comments

Popular posts from this blog

The calling thread must be STA, because many UI components require this.

Using Thread: // Create a thread Thread newWindowThread = new Thread(new ThreadStart(() => { // You can use your code // Create and show the Window FaxImageLoad obj = new FaxImageLoad(destination); obj.Show(); // Start the Dispatcher Processing System.Windows.Threading.Dispatcher.Run(); })); // Set the apartment state newWindowThread.SetApartmentState(ApartmentState.STA); // Make the thread a background thread newWindowThread.IsBackground = true; // Start the thread newWindowThread.Start(); Using Task and Thread: // Creating Task Pool, Each task will work asyn and as an indivisual thread component Task[] tasks = new Task[3]; // Control drug data disc UI load optimize tasks[0] = Task.Run(() => { //This will handle the ui thread :The calling thread must be STA, because many U...

SQL Query Execution time of you in SQL Management Studio

You can check the Execution time of you SQL Query in SQL Management Studio. like this It is very simple that you just put your SQL Query in to the Estimated time execution query DECLARE @StartTime datetime DECLARE @EndTime datetime SELECT @StartTime=GETDATE() -- Write Your Query SELECT @EndTime=GETDATE() --This will return execution time of your query SELECT DATEDIFF(NS,@StartTime,@EndTime) AS [Duration in millisecs]

WPF Crystal Report Viewer Using SAP

There is no doubt that we fall a great problem that the VS2010 is not intregated crystal report. Initially it seems to be a big problem. Hare is some step for SAP crystal report that we can use in our WPF application. 1.Download  Crystal report from this Link: http://scn.sap.com/docs/DOC-7824 2 . Remove Crystal report if any exist. 3. Close your VS-2010 and install the new downloaded CRforVS_13_0 . 4. Take a new WPF project   5. Right click on the project click on Properties 6. Change the target framework .NET Framework 4 Client Profile to  .NET Framework 4. 7. Click on main window then click on Toolbox.  Right Click on the General Tab then click on Choose Item. 8. It will appear this window click on WPF Component. 9.  Select CrystalReportsViewer  click on ok   Button. 10. Now you will see the report viewer control. 11. Your Crystal Report Environment is ready. Now we will a...