温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ASP.NET数据导入中如何实现Excel to MSSQL

发布时间:2021-10-28 15:56:59 来源:亿速云 阅读:168 作者:柒染 栏目:编程语言

这期内容当中小编将会给大家带来有关ASP.NET数据导入中如何实现Excel to MSSQL,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

实现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];//连接并读取Excel数据   for (i = 3; i <= totalrow; i++)//将Excel文件中***个工作表的数据导入到sql数据库scjd_youliaoxiaohaojihua表中  {       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++)       {//遍历Excel表中一行的所有列,除***一列           sql += dtin.Rows[i][j].ToString().Trim();           sql += "','";       }       sql += dtin.Rows[i][8].ToString().Trim();       sql += "')";       try      {            DoSql(sql);       }       catch (Exception eeeeeee)        {           Response.Write("<script>alert('数据导入错误,请检查Excel文件')</script>");           return;        }  }   FileInfo file = new FileInfo(Server.MapPath("fileupload/") +  filename);  if (file.Exists)  {//删除文件          file.Delete();  }   protected void DoSql(string sql)//执行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有所了解。

上述就是小编为大家分享的ASP.NET数据导入中如何实现Excel to MSSQL了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI