防止通过Oledb C#将Excel中的重复数据复制到数据库

时间:2019-05-15 05:56:13

标签: c# asp.net sql-server excel

我有一个excel,我只想用一个按钮将其四列上传到SQL表。 问题是当我重复单击该按钮时,所有这些数据将被复制,但是我不想要那样。我只希望更新新数据。 我的查询:

protected void Button1_Click(object sender, EventArgs e)
    {
        int UserID;
        int InsuID;
        string Result;
        int Year;

        //** مسیر فایل اکسل**
        String ExcelPath = @"D:\Insu_lab.xlsx";

        //** کانکشن به آفیس**
        OleDbConnection mycon = new OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + ExcelPath + "; Extended Properties=Excel 8.0; Persist Security Info = False");
        mycon.Open();
        OleDbCommand cmd = new OleDbCommand("select * from [Sheet1$]", mycon);
        OleDbDataReader dr = cmd.ExecuteReader();

        while (dr.Read())
        {

            UserID = Convert.ToInt32(dr[0].ToString());
            InsuID = Convert.ToInt32(dr[1].ToString());
            Result = dr[2].ToString();
            Year = Convert.ToInt32(dr[3].ToString());

            savedata(UserID, InsuID, Result, Year);
            Label1.Text = "اطلاعات با موفقیت در  دیتابیس ذخیره شد";

        }
    }

    private void savedata(int UserID, int InsuID, string Result, int Year)
    {
        String query = "insert into tbl_Result(UserID,InsuID,Result,Year) values(" + UserID + ",'" + InsuID + "','" + Result + "','" + Year + "') ";
        String mycon = "Data Source=MC6082; Initial Catalog=Insurance; Integrated Security=true";
        SqlConnection con = new SqlConnection(mycon);
        con.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.CommandText = query;
        cmd.Connection = con;
        cmd.ExecuteNonQuery();
    }

1 个答案:

答案 0 :(得分:0)

解决方案1:在clickedbutton时,该(button)禁用了按钮。

Button1.disable = true;

导出结束后:

Button1.disable = false;

解决方案2:您可以在此部分中使用jquery ajax。