Execl数据导入Sql Server表

原创 2012年03月26日 10:26:39

        //将Execl数据放入DataSet
        public DataSet ExecleDs(string filenameurl, string table)
        {
            string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();
            OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
            DataSet ds = new DataSet();
            odda.Fill(ds, table);
            return ds;
        }

        //导入按钮事件
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (FileUpload1.HasFile == false)
            {
                Response.Write("<script>alert('请您选择Excel文件')</script> ");
                return;//当无文件时,返回
            }
            string IsXls = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();
            if (IsXls != ".xls")
            {
                Response.Write("<script>alert('只可以选择Excel文件')</script>");
                return;//当选择的不是Excel文件时,返回
            }
           
            string strpath = FileUpload1.PostedFile.FileName.ToString();   //获取Execle文件路径
            string filename = FileUpload1.FileName;                       //获取Execle文件名
            DataSet ds = ExecleDs(strpath, filename);
            DataRow[] dr = ds.Tables[0].Select();                        //定义一个DataRow数组
            int rowsnum = ds.Tables[0].Rows.Count;
            if (rowsnum == 0)
            {
                Response.Write("<script>alert('Excel表为空表,无数据!')</script>");   //当Excel表为空时,对用户进行提示
            }

            else
            {
                int  count = dr.Length;
                int execCount = 0;
                int yiCunZaiCount = 0;
                for (int i = 0; i < dr.Length; i++)
                {
                    string customerCode = dr[i][0].ToString();
                    string customerName = dr[i][1].ToString();
                    //
                    string cityId = dr[i]["所在城市"].ToString();

                    string address = dr[i]["联系地址"].ToString();
                    string phoneAreaCode = dr[i]["电话区号"].ToString();
                    string telPhone = dr[i]["电话"].ToString();
                    string telFenJi = dr[i]["电话分机号"].ToString();
                    string fax = dr[i]["传真区号"].ToString();
                    string faxFenJi = dr[i]["传真分机号"].ToString();
                    string webUrl = dr[i]["客户网址"].ToString();
                    //
                    string source = dr[i]["客户来源"].ToString();
                    string status = dr[i]["客户状态"].ToString();
                    string stype = dr[i]["客户类型"].ToString();
                    string level = dr[i]["客户等级"].ToString();
                    string industry = dr[i]["客户所属行业"].ToString();


                    string soucreId = string.Empty;
                    string statusId = string.Empty;
                    string stypeId = string.Empty;
                    string levelId = string.Empty;
                    string industryId = string.Empty;

                    //核对客户来源是否存在
                    soucreId = checkSource(source);
                    //核对客户状态是否存在
                    statusId = checkStatus(status);
                    //核对客户类型是否存在
                    stypeId = checkType(stype);
                    //核对客户等级是否存在
                    levelId = checkLevel(level);
                    //核对客户所属行业是否存在
                    industryId = checkIndustry(industry);

                    string[] param ={customerCode,customerName,cityId,address,phoneAreaCode, telPhone, telFenJi,fax,faxFenJi,webUrl,
                                    soucreId,statusId,stypeId,levelId,industryId,ClsCommon.getUserInfo().USER_ID
                                    };
                    string insertSqlStr = @"insert into T_Customer
                               (CustomerCode,CustomerName,CityID,Address,TelAreaCode,
                                Telephone,TelExtNo,FaxAreaCode,Fax,WebSiteUrl,
                                SourceId,StatusId,TypeId,LevelId,IndustryId,CreateUserId)
                                values ('{0}','{1}',{2},'{3}','{4}','{5}','{6}','{7}','{8}','{9}',{10},{11},{12},{13},{14},'{15}' ";
                    insertSqlStr = string.Format(insertSqlStr, param);

                    insertSqlStr += @")";
                    string sqlcheck = "select  *  from T_Customer where CustomerName='" + customerName + "'";
                    DataSet dss = DbHelperSQL.Query(sqlcheck);
                    if (dss.Tables[0].Rows.Count <= 0)
                    {
                        try
                        {
                            int scuess = DbHelperSQL.ExecuteSql(insertSqlStr);
                            execCount++;
                        }
                        catch (Exception ex)
                        {

                        }
                    }
                    else
                    {
                        yiCunZaiCount++;
                    }
                }
                Response.Write("<script> alert('Excle表导入成功!!,导入" + execCount + "条新客户信息;" + yiCunZaiCount + "条老客户信息');</script>");
            }
        }


        //核对客户来源是否存在
        public string checkSource(string sourceName)
        {
            string sql = " select * from dbo.T_Customer_Source where SourceName='" + sourceName+"'";
            string i = ClsDbAccess.ExecuteScalar(sql);
            string j = string.Empty;
            if (!string.IsNullOrEmpty(i))
            {
                return i;
            }
            else
            {
                string inseSql = "insert into dbo.T_Customer_Source (SourceName) values ('" + sourceName + "')";
                j = ClsDbAccess.ExecuteScalar(inseSql);
                return j;
            }
        }

        //核对客户状态是否存在
        public string checkStatus(string status)
        {
            string sql = " select * from T_Customer_Status where StatusName='" + status + "'";
            string i = ClsDbAccess.ExecuteScalar(sql);
            string j = string.Empty;
            if (!string.IsNullOrEmpty(i))
            {
                return i;
            }
            else
            {
                string inseSql = "insert into T_Customer_Status (StatusName) values ('" + status + "')";
                j = ClsDbAccess.ExecuteScalar(inseSql);
                return j;
            }
        }
        //核对客户类型是否存在
        public string checkType(string type)
        {
            string sql = " select * from dbo.T_Customer_Type where TypeName='" + type+"'";
            string i = ClsDbAccess.ExecuteScalar(sql);
            string j = string.Empty;
            if (!string.IsNullOrEmpty(i))
            {
                return i;
            }
            else
            {
                string inseSql = "insert into dbo.T_Customer_Type (TypeName) values ('" + type + "')";
                j = ClsDbAccess.ExecuteScalar(inseSql);
                return j;
            }
        }
        //核对客户级别是否存在
        public string checkLevel(string level)
        {
            string sql = " select * from dbo.T_Customer_Level where LevelName='" + level + "'";
            string i = ClsDbAccess.ExecuteScalar(sql);
            string j = string.Empty;
            if (!string.IsNullOrEmpty(i))
            {
                return i;
            }
            else
            {
                string inseSql = "insert into T_Customer_Level (LevelName) values ('" + level + "')";
                j = ClsDbAccess.ExecuteScalar(inseSql);
                return j;
            }
        }
        //核对客户所属行业是否存在
        public string checkIndustry(string industry)
        {
            string sql = " select * from dbo.T_Customer_Industry where IndustryName='" + industry + "'";
            string i = ClsDbAccess.ExecuteScalar(sql);
            string j = string.Empty;
            if (!string.IsNullOrEmpty(i))
            {
                return i;
            }
            else
            {
                string inseSql = "insert into T_Customer_Industry (IndustryName) values ('" + industry + "')";
                j = ClsDbAccess.ExecuteScalar(inseSql);
                return j;
            }
        }

SQL Server 2000/2008导入导出数据表

SQL Server 2000/2005/2008将excel导入数据库表、将一个数据库的数据表导入到另一个数据库,也可以是2台电脑/云服务器上的数据库的数据表之间的导入方法一样。数据表的导出方法相仿...
  • Gordennizaicunzai
  • Gordennizaicunzai
  • 2016年02月28日 22:18
  • 1134

sql server 2012 本地数据导入数据库详细步骤

路漫漫其修远兮,吾将上下而求索~
  • xz_4321
  • xz_4321
  • 2016年09月27日 18:17
  • 5901

将Excel数据导入到SqlServer及导入时数据类型转换失败解决方案

将数据导入到SqlServer是很常用的一个功能,而Excel数据源又是数据导入功能的常用数据源,在使用时遇到一些问题,记录下来防止大家走弯路。...
  • xiaouncle
  • xiaouncle
  • 2016年10月13日 11:03
  • 4739

将远程SQL Server 数据库中表数据导入本地数据库相应的表

方法一  1.远程数据库注册到本地的方法:  exec sp_addlinkedserver '名称','','SQLOLEDB','远程数据库地址'  exec sp_addlinkedsrvlog...
  • u013597888
  • u013597888
  • 2014年03月12日 12:39
  • 1520

简单三层使用DataTable向数据库表批量导入数据---向SqlServer一张表中导入数据

简单三层使用DataTable向数据库表批量导入数据---向SqlServer一张表中导入数据
  • TianChong
  • TianChong
  • 2015年03月14日 01:21
  • 823

SQL Server数据导入到Access数据库

 将Access数据库数据导入到SQL Server 2005 第一步,开启SQLSERVER 2000服务管理,打开“企业管理器”,新建一个数据库,名称为“Access数据转换”; ...
  • liyanping521
  • liyanping521
  • 2014年12月19日 14:05
  • 1962

将MYSQL表结构导入到SQL Server中,也可互换操作

1.使用工具 Navicat Premium  直接下载地址: http://www.baidu.com/link?url=MqOuKkRhNJ6nO_tFaLrmBPSmmK9GPapRAV1F1p...
  • leiliz
  • leiliz
  • 2017年07月06日 15:42
  • 886

将SQLServer表直接导入Oracle数据库(图文教程)

前言: 将SQLServer数据库中的表和数据全量导入到Oracle数据库,通过Microsoft SqlServer Management Studio工具,直接导入到oracle数据库,免去了生成...
  • x541211190
  • x541211190
  • 2017年06月02日 10:40
  • 3993

sqlserver2000下生成表结构脚本和导入导出数据内容

1 表结构生成sql脚本 在指定的表【bjgl_code】(以下均以bjgl_code为例)上点击右键,选择【所有任务】-》【生成sql脚本】,在右下角的【将要写入脚本的对象】中选择bjgl_code...
  • yunxian_19
  • yunxian_19
  • 2016年12月02日 16:46
  • 2977

使用T-SQL导入多个文件数据到SQL Server中

在我们的工作中,经常需要连续输入多个文件的数据到SQL Server的表中,有时需要从相同或者不同的目录中,同时将文件中的数据倒入。在这篇文章中,我们将讨论如何同时把一个目录中的文件的数据倒入到SQL...
  • liyifei21
  • liyifei21
  • 2013年08月04日 16:27
  • 1128
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Execl数据导入Sql Server表
举报原因:
原因补充:

(最多只允许输入30个字)