通过 Oledb c# 防止重复数据从 Excel 到 db
Posted
技术标签:
【中文标题】通过 Oledb c# 防止重复数据从 Excel 到 db【英文标题】:prevent duplicate data from Excel to db via Oledb c# 【发布时间】:2019-10-02 04:43:18 【问题描述】:我有一个 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();
【问题讨论】:
请让您的问题更清楚:您希望添加新数据还是更新文件同时更新现有数据。您可能缺少一些唯一键,可能是 userID 和 InsuID? 【参考方案1】:解决方案 1:当您 clicked
on button
时,(button
) 禁用该按钮。
Button1.disable = true;
导出结束时:
Button1.disable = false;
解决方案2:这部分可以使用from jquery ajax。
【讨论】:
谢谢,您能介绍一下解决方案 2 吗?以上是关于通过 Oledb c# 防止重复数据从 Excel 到 db的主要内容,如果未能解决你的问题,请参考以下文章
通过 C# 和 OleDb 在 Excel 电子表格中插入一行