当前位置: 首页 > news >正文

C#Excel上传批量导入sqlserver

前台:

 <x:FileUpload ID="btnUpField"  runat="server" Label="上传Excel批量导入用户信息" ShowLabel="true"  >
                         
                    </x:FileUpload>
                    <x:Button ID="Button1" Text="上传" runat="server" Icon="SystemSaveNew"
                        OnClick="btnUpField_Click">
                        </x:Button>

后台:

 protected void btnUpField_Click(object sender, EventArgs e)
        {
            //将需要导入的文件上传到服务器 
            string filePath = "";
            string fileExtName = "";
            string myFileName;//用不到,但也写上吧 
            string myPath;
            string FullName = "";//保存文件的完整文件名 
            if (btnUpField.PostedFile.FileName != "")
            {
                //取得文件路径    
                filePath = btnUpField.PostedFile.FileName;
                //取得文件扩展名
                fileExtName = filePath.Substring(filePath.LastIndexOf(".") + 1);
                //判断是否为Excel文件  
                if (fileExtName == "xls" || fileExtName == "xlsx")
                {
                    try
                    {
                        //取得与web服务器上指定的虚拟路径相对应的物理路径
                        myPath = Server.MapPath("~/UpFile/");
                        //取得文件名
                        myFileName = filePath.Substring(filePath.LastIndexOf(".") + 1);
                        //取得当前时间,以“时时分分秒秒”来命名,以免重复 
                        string strDateName = DateTime.Now.ToString("hhmmss");
                        FullName = myPath + strDateName + "." + fileExtName;
                        btnUpField.PostedFile.SaveAs(FullName);
                    }
                    catch (Exception ex)
                    {
                        Response.Write(ex.Message);
                    }
                }
                else
                {
                    Alert.Show("文件格式不正确", MessageBoxIcon.Error);
                    return;

                }



            }
            //读取Excel中的内容 
            //string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FullName + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1;'";//Excel2003
            //string strConn = String.Empty;
            string strConn = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + FullName + ";Extended Properties='Excel 12.0; HDR=YES; IMEX=1'";//Excel2007以上

            OleDbConnection connxls = new OleDbConnection(strConn);
            if (connxls.State.ToString() == "Closed")
            {
                connxls.Open();

            }

            string sqlExcel = "SELECT * FROM [Sheet1$]";

            OleDbDataAdapter myDa = new OleDbDataAdapter(sqlExcel, connxls);
            //DataTable m_tableName=new DataTable();
            DataSet myDs = new DataSet();
            //m_tableName = connxls.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
            //if (m_tableName != null && m_tableName.Rows.Count > 0)
            //{

            //    m_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString();

            //}
            try
            {
                myDa.Fill(myDs, "[Sheet1$]");
            }
            catch (Exception ex)
            {
                Response.Write("数据格式不对!" + ex.Message);
            }
            if (myDs.Tables[0].Rows.Count > 0)//数据绑定
            {
                int i = 0;
                try
                {
                    
                }
                catch (Exception ex)
                {
                    Response.Write("读取出错" + ex.Message);
                }
                for (i = 0; i < myDs.Tables[0].Rows.Count; i++)
                {
                    txtLoginName.Text = myDs.Tables[0].Rows[i][0].ToString();
                    txtName.Text = myDs.Tables[0].Rows[i][1].ToString();
                    txtPassword.Text = myDs.Tables[0].Rows[i][2].ToString();
                    txtAfreshPwd.Text = myDs.Tables[0].Rows[i][3].ToString();

                    if (myDs.Tables[0].Rows[i][4].ToString().Equals(""))
                    { rbSex.SelectedItem.Value = ""; }
                    else
                    { rbSex.SelectedItem.Value = ""; }


                    Save();

                }
                
                Alert.Show("恭喜您保存成功" + "共有" + myDs.Tables[0].Rows.Count + "条数据," + "正在保存第" + i + "", MessageBoxIcon.Information);
            }
            PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
        }

 

转载于:https://www.cnblogs.com/fang645421992/p/3818898.html

相关文章:

  • Windows Server网络负载均衡技术
  • SQL Server 索引视图 聚簇索引
  • 运维自动化之puppet基础应用解析
  • Log4j发送日志邮件功能
  • CCNA综合二
  • 被称"硬盘杀手"的几个win7系统服务如何关闭(转)
  • codeigniter 视图
  • Linux后台运行
  • jquery获取单选button选中的值
  • objdump
  • 视图显示库存余量
  • C++11
  • SQL Server基础知识
  • 一个byte缓存--用于图片或视频
  • 微软 WPC 2014 合作伙伴keynote
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【EOS】Cleos基础
  • eclipse(luna)创建web工程
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • java小心机(3)| 浅析finalize()
  • JS 面试题总结
  • k个最大的数及变种小结
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • quasar-framework cnodejs社区
  • Spark学习笔记之相关记录
  • Vue组件定义
  • 区块链将重新定义世界
  • 我看到的前端
  • 转载:[译] 内容加速黑科技趣谈
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • $.proxy和$.extend
  • (4)事件处理——(7)简单事件(Simple events)
  • (C++20) consteval立即函数
  • (多级缓存)多级缓存
  • (二)pulsar安装在独立的docker中,python测试
  • (十三)Flask之特殊装饰器详解
  • (一) storm的集群安装与配置
  • (转)Mysql的优化设置
  • .net CHARTING图表控件下载地址
  • .net反编译的九款神器
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .net经典笔试题
  • .net快速开发框架源码分享
  • .NET使用存储过程实现对数据库的增删改查
  • [@Controller]4 详解@ModelAttribute
  • [1204 寻找子串位置] 解题报告
  • [AR]Vumark(下一代条形码)
  • [C++打怪升级]--学习总目录
  • [CTO札记]盛大文学公司名称对联
  • [GN] Vue3.2 快速上手 ---- 核心语法2
  • [java基础揉碎]关系运算符(比较运算符)逻辑运算符赋值运算符三元运算符运算符的优先级
  • [Java性能剖析]Sun JDK基本性能剖析工具介绍
  • [linux] 创建用户