The below is my code to import data from excel to database.But when i enter new data in excel and uploading it to database all the data is again inserting into database.My requirement is only newly inserted file in excel should be upload to database
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Office.Interop.Excel;
using System.Text;
using System.Reflection;
using System.Data.OleDb;
using System.Data;
using System.Data.SqlClient;
using System.Web.Security;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class apload : System.Web.UI.Page
{
string sName = "";
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter();
cnt1 cn = new cnt1();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUpload_Click(object sender, EventArgs e)
{
int n = cn.upd();
if (FileUpload1.HasFile)
{
sName = FileUpload1.FileName;
Console.Write(sName);
string ext = System.IO.Path.GetExtension(sName);
if (ext == ".xls")
{
FileUpload1.SaveAs(Server.MapPath("../App_Data/" + "Books" + ext));
}
}
sName = FileUpload1.FileName.ToString();
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=D:\\" + sName + "; Extended Properties=\"Excel 8.0;HDR=YES\"");
OleDbCommand cmd = new OleDbCommand("select * from [Sheet1$]", conn);
try
{
OleDbCommand ocmd = new OleDbCommand("select * from [Sheet1$]", conn);
conn.Open();
ocmd.Connection = conn;
OleDbDataAdapter adapter = new OleDbDataAdapter(ocmd);
DataSet ds = new DataSet();
adapter.Fill(ds, "ex");
int cnt = ds.Tables["ex"].Rows.Count;
gdvEx.DataSource = ds;
gdvEx.DataBind();
OleDbDataReader odr = ocmd.ExecuteReader();
string EmployeeID;
string FirstName = "";
string LastName = "";
string Address = "";
string Gender = "";
while (odr.Read())
{
EmployeeID = valid(odr, 0);
FirstName = valid(odr, 1);
LastName = valid(odr, 2);
Address = valid(odr, 3);
Gender = valid(odr, 4);
if ((int)cnt != n)
{
insertdataintosql(EmployeeID, FirstName, LastName, Address, Gender);
}
}
conn.Close();
}
catch (DataException ee)
{
lblmsg.Text = ee.Message;
lblmsg.ForeColor = System.Drawing.Color.Red;
}
finally
{
lblmsg.Text = "Data Inserted Sucessfully";
lblmsg.ForeColor = System.Drawing.Color.Green;
}
}
private string valid(OleDbDataReader myreader, int stval)
{
object val = myreader[stval];
if (val != DBNull.Value)
return val.ToString();
else
return Convert.ToString(0);
}
public void insertdataintosql(string EmployeeID, string FirstName, string LastName, string Address, string Gender)
{
SqlConnection con = new SqlConnection("Server=SREEKANTH-MSFT\\SQLEXPRESS;Database=Example;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "insert into Employee(EmployeeID,FirstName,LastName,Address,Gender)values(@EmployeeID,@FirstName,@LastName,@Address,@Gender)";
cmd.Parameters.Add("@EmployeeID", SqlDbType.NVarChar).Value = EmployeeID;
cmd.Parameters.Add("@FirstName", SqlDbType.NVarChar).Value = FirstName;
cmd.Parameters.Add("@LastName", SqlDbType.NVarChar).Value = LastName;
cmd.Parameters.Add("@Address", SqlDbType.NVarChar).Value = Address;
cmd.Parameters.Add("@Gender", SqlDbType.NVarChar).Value = Gender;
cmd.CommandType = CommandType.Text;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}