ASP.NET数据导入之实现Excel to MSSQL的过程是什么呢?需要注意什么呢?
做网站项目时,可能会遇到将Excel文件中的ASP.NET数据导入至SQL Server数据库的需求,把Excel也看作数据库,使用OleDb连接后读取数据然后写入用SqlClient连接的SQL Server数据库即可,技术上没有什么难度 。
但是需要考虑的一个问题是,系统安装的环境一般是专用sql server服务器+web服务器+客户端,而Excel文件往往在客户端导入,如果直接使用SQL语句读取的话,由于SQL在web服务器上运行,不能读取到客户端的Excel地址,就会出错了 。
既然知道了错误的原因,解决方案也就有了:
1、把客户端的Excel上传至web服务器上某文件夹,注意要给该文件夹设置网络用户的“写入”权限;
2、使用OleDb+sql语句读取web服务器上的Excel文件
3、将读取的ASP.NET数据导入到SQL Server 数据库
4、将web服务器上的临时Excel删除
部分代码如下:
- string filename = FileUpload1.PostedFile.FileName.Substring(FileUpload1.PostedFile.FileName.LastIndexOf("\\"));
- FileUpload1.PostedFile.SaveAs(Server.MapPath("fileupload\\") + filename);
-
- string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
- Server.MapPath("fileupload\\") + filename + ";Extended Properties=Excel 8.0";
- string sqlin = "SELECT * FROM [Sheet2$]";
- OleDbCommand olecommand = new OleDbCommand(sqlin, new OleDbConnection(conn));
- OleDbDataAdapter adapterin = new OleDbDataAdapter(olecommand);
- DataSet dsin = new DataSet();
- adapterin.Fill(dsin);
- DataTable dtin = dsin.Tables[0];
-
- for (i = 3; i <= totalrow; i++)
- {
- string sql = "insert into scjd_youliaoxiaohaojihua(yuexuhao,danwei,youpin,
- cheliangmingchengxinghao,zichanxingzhi,chepaihao,qiyou,chaiyou,beizhu) values(";
- int j;
- sql += DropDownList1.SelectedValue.ToString() + DropDownList3.SelectedValue.ToString();
- if (DropDownList1.SelectedValue.ToString() != DateTime.Now.Year.ToString() || int.Parse
- (DateTime.Now.Month.ToString()) != int.Parse(DropDownList3.SelectedValue.ToString()))
- {
- sql += "20";
- }
- else
- {
- if (int.Parse(DateTime.Now.Day.ToString()) < 10)
- sql += "0";
- sql += DateTime.Now.Day.ToString();
- }
- if (i-3 + count < 9)
- sql += "00";
- else if (i-3 + count < 99)
- sql += "0";
- sql += (i -3 + 1 + count).ToString();
- sql += ",";
- for (j = 1; j < 8; j++)
- {
- sql += dtin.Rows[i][j].ToString().Trim();
- sql += ",";
- }
- sql += dtin.Rows[i][8].ToString().Trim();
- sql += ")";
- try
- {
- DoSql(sql);
- }
- catch (Exception eeeeeee)
- {
- Response.Write("");
- return;
- }
- }
-
- FileInfo file = new FileInfo(Server.MapPath("fileupload/") + filename);
- if (file.Exists)
- {
- file.Delete();
- }
-
- protected void DoSql(string sql)
- {
- SqlConnection conn = new SqlConnection();
- conn.ConnectionString = ConfigurationManager.AppSettings["conn"].ToString();
- conn.Open();
- SqlCommand cmd = new SqlCommand(sql, conn);
- cmd.ExecuteNonQuery();
- conn.Close();
- }
注:
1、本文代码均取自我最近刚做的一个小项目,部分数据有较强针对性,并不通用,只有思路通用
2、由于能力和水平问题,部分代码显得有些笨拙,若能灵活运用存储过程,应能大幅度简化代码
ASP.NET数据导入之实现Excel to MSSQL的情况就向你介绍到这里,希望通过介绍使你对于ASP.NET数据导入之实现Excel to MSSQL有所了解 。