excel 导入数据库

2019/7/24 10:04:22 人评论 次浏览 分类:学习教程

原文链接:http://www.cnblogs.com/nanapig77/archive/2010/08/19/1803061.html

ContractedBlock.gifExpandedBlockStart.gif代码
1 #region ============实现vendor上传=========================
2 /// <summary>
3 /// 上传窗口upload按钮点击事件
4 /// </summary>
5 protected void WindowVendorUploadClick(object sender, EventArgs e)
6 {
7
8 string fileName = VendorUploadField.FileName;
9 HttpPostedFile vendorPostedFile = HttpContext.Current.Request.Files[0];
10 if ((fileName.EndsWith(".xlsx")) || (fileName.EndsWith(".xls")))
11 {
12 #region 上传
13 string path = Server.MapPath("~/Vendor/VendorUpload/");
14 string fName = "";
15 if (fileName.EndsWith(".xlsx"))
16 {
17 fName = DateTime.Now.ToString("yyyy-MM-dd")+".xlsx";
18 }
19 if (fileName.EndsWith(".xls"))
20 {
21 fName = DateTime.Now.ToString("yyyy-MM-dd")+".xls";
22 }
23 if (!Directory.Exists(path))
24 Directory.CreateDirectory(path);
25 vendorPostedFile.SaveAs(path + fName);
26 #endregion
27
28 #region 导入数据库
29 string strConn = null;
30 string sql = "SELECT * FROM [Vendor$]";
31 if (vendorPostedFile.FileName.EndsWith("xlsx"))
32 {
33 strConn = @"Provider=Microsoft.Ace.OLEDB.12.0;Data Source= " + path + fName + ";Extended Properties=Excel 12.0";
34 }
35 if (vendorPostedFile.FileName.EndsWith("xls"))
36 {
37 strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + path + fName + ";Extended Properties=Excel 8.0";
38 }
39 OleDbConnection olecon = new OleDbConnection(strConn);
40 try
41 {
42 olecon.Open();
43 int count = 0;
44
45 OleDbDataAdapter adapter = new OleDbDataAdapter(sql, olecon);
46 DataTable dt = new DataTable();
47 adapter.Fill(dt);
48
49 for (int i = 0; i < dt.Rows.Count; i++)
50 {
51 BS_VendorInfo vendorInfo = new BS_VendorInfo();
52 vendorInfo = vendorLogic.GetVendorInfoById(dt.Rows[i]["Vendor Id"].ToString());
53 if (vendorInfo != null)
54 {
55 vendorInfo.country = dt.Rows[i]["Country"].ToString();
56 vendorInfo.account = dt.Rows[i]["Bank account"].ToString();
57 vendorInfo.bankpostcode = dt.Rows[i]["Bank postcode"].ToString();
58 vendorLogic.Update(vendorInfo);
59 }
60 count++;
61 }
62 CurrentUser user = new CurrentUser();
63 user = (CurrentUser)Session["UserInfo"];
64 Session["user"] = user;//用于传到Details页面
65 Org = user.UserLegalEntityID;
66 BindGrid(Org, "", "", "");
67 this.WindowVendorUpload.Hide();
68 if (count != 0)
69 {
70 Ext.Msg.Alert("Tips", "Success,您已成功更新" + count + "条记录").Show();
71 }
72 else
73 {
74 Ext.Msg.Alert("Tips", "Error,更新失败,请查看您所填写的vendor id是否正确").Show();
75 }
76 }
77 catch (Exception ex)
78 {
79 Ext.Msg.Alert("tips", "导入数据发生异常,请检查数据是否按要求填写").Show();
80 }
81 finally
82 {
83 olecon.Close();
84 }
85 #endregion
86 }
87 else
88 {
89 Ext.Msg.Alert("Tips", "请选择excel文件").Show();
90 }
91 }
92 #endregion
起初的思路是直接读取excel文件的内容而不保存文件,但是这样就总是报异常“Microsoft Jet 数据库引擎打不开文件''。 它已经被别的用户以独占方式打开,或没有查看数据的权限。”

于是后来决定先保存文件再对读取保存的文件实现excel导入数据库的操作

转载于:https://www.cnblogs.com/nanapig77/archive/2010/08/19/1803061.html

相关资讯

  • 那些我们不愿意承认的事

    很久没有见的老朋友,准确的说应该是很久没有见过的老师,一个比我大两岁的老师,我上初中的时候他从高中回来教我了一年。后来又回去上高中,我上高中的时候他上大学,现在我刚大学毕业他创办了公司。昨日一见依然如故,他还是热爱销售,而我却成了纯粹的技术人员。 看到他…

    2015/6/22 13:12:47

学习教程

共有访客发表了评论 网友评论

验证码: 看不清楚?
    -->