我在Excel中有ID,描述和价格列然后我使用FileUpload来为文件收费,但是必须读取每列的ID并查看数据库中是否有一个表项目我有同样的ID,描述,价格然后如果ID存在我比较价格和升级,如果这是不同的和另一种情况我插入表格中ID,描述和价格不存在的excel的价格。
有些朋友告诉我使用“Transverse excel电子表格”,但我看不到任何例子。
protected void Button1_Click(object sender, EventArgs e)
{
if(FileUpload1.HasFile){
string path = string.Concat((Server.MapPath("~/temp/" + FileUpload1.FileName)));
FileUpload1.PostedFile.SaveAs(path);
OleDbConnection OleDbcon = new OleDbConnection("Provider = Microsoft.Ace.OLEDB.12.0; Data Source=" + path + ";Extended Properties= Excel 12.0;");
OleDbCommand cmd = new OleDbCommand("Select * from [Sheet1$]", OleDbcon);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(cmd);
OleDbcon.Open();
DbDataReader dr = cmd.ExecuteReader();
}
}
答案 0 :(得分:0)
你快到了。我将从Excel文件中获取数据并将DataReader加载到DataTable中。此外,您可以使用第二个DataTable从数据库中检索数据。在内存中加载两个DataTable后,您可以轻松应用业务逻辑进行比较。
DataTable DT_Excel = new DataTable();
DT_Excel.Load(DbDataReader);
//Load data into a DataTable
DataTable DT_DataBase = new DataTable();
DT_DataBase = GetDataFromDatabase();
//A simple loop to compare the data
foreach (DataRow dtRow in DT_Excel.Rows) {
DT_DataBase.DefaultView.RowFilter = "ID = " + dtRow.Item("ID");
if (DT_DataBase.DefaultView.ToTable.Rows.Count > 0) {
//Do something if record is already in the databse
}