多表工作簿导入数据库表(按日期存储表)

        private void ImportHcData()
        {
            string xllPath = @"E:\CH\GENERALTOOLS";
            string configTableName = "HCYSJ";
            CpmVars myVar = new CpmVars(configTableName, xllPath);


            string sqlPart = @"IF OBJECT_ID(N'{0}',N'U') IS NOT  NULL 
	                                drop TABLE {0}
                                create table {0} (OBJECT_ID NVARCHAR(38) NOT NULL,YDH NVARCHAR(20) NOT NULL,BBH DECIMAL(10,0) NOT NULL,HCLX NVARCHAR(30),QD NVARCHAR(30),FKFS NVARCHAR(10),FKWD NVARCHAR(10),SJRQ NVARCHAR(30),PJRQ NVARCHAR(30),YJDWDDM NVARCHAR(10),MDDWDDM NVARCHAR(10),HCSJ NVARCHAR(30) NOT NULL,HCRYGH NVARCHAR(20),YJZH NVARCHAR(20),YYJD NVARCHAR(10),XYJD NVARCHAR(10),YMDD NVARCHAR(10),XMDD NVARCHAR(10),YCPDM NVARCHAR(10),XCPDM NVARCHAR(10),YSXLX NVARCHAR(10),XSXLX NVARCHAR(10),YQYLX NVARCHAR(10),XQYLX NVARCHAR(10),YYWLX NVARCHAR(10),XYWLX NVARCHAR(10),YJFZL NVARCHAR(40),XJFZL NVARCHAR(40),YFKFS NVARCHAR(10),XFKFS NVARCHAR(10),YYF NVARCHAR(40),XYF NVARCHAR(40),CE NVARCHAR(40),YYJZH NVARCHAR(20),XYJZH NVARCHAR(20),YBZF NVARCHAR(10),XBZF NVARCHAR(10),YBJ NVARCHAR(10),XBJ NVARCHAR(10),YWTJ NVARCHAR(10),XWTJ NVARCHAR(10),YDLPYJ NVARCHAR(10),XDLPYJ NVARCHAR(10),YTSBJ NVARCHAR(10),XTSBJ NVARCHAR(10),YTSPS NVARCHAR(10),XTSPS NVARCHAR(10),YDSHKFW NVARCHAR(10),XDSHKFW NVARCHAR(10),YSXFW NVARCHAR(10),XSXFW NVARCHAR(10),YCCCZ NVARCHAR(10),XCCCZ NVARCHAR(10),YTZBZ NVARCHAR(10),XTZBZ NVARCHAR(10),YJJRFWF NVARCHAR(10),XJJRFWF NVARCHAR(10),YBDPS NVARCHAR(10),XBDPS NVARCHAR(10),YZZFJF NVARCHAR(10),XZZFJF NVARCHAR(10),YDSHK NVARCHAR(10),XDSHK NVARCHAR(10),YZJTH NVARCHAR(10),XZJTH NVARCHAR(10),YXGPYJ NVARCHAR(10),XXGPYJ NVARCHAR(10),YPYFJF NVARCHAR(10),XPYFJF NVARCHAR(10),YGGFKFSFJF NVARCHAR(10),XGGFKFSFJF NVARCHAR(10),YPJDZBGFW NVARCHAR(10),XPJDZBGFW NVARCHAR(10),YHWBGFW NVARCHAR(10),XHWBGFW NVARCHAR(10),YSHSLFW NVARCHAR(10),XSHSLFW NVARCHAR(10), primary key(YDH, BBH, HCSJ))

                                ";

            string path = @"E:\CH\HC\data";
            string[] filenames = EUtil.RetrieveFilesFromDir(path);

            string pattern = @"(.*)(\d{4}-\d{2}-\d{2})(.*)";
            string replacement = "$2";
            List<string> strs = new List<string>(); //for msg
            MyCommon.ExecuteSql("TRUNCATE TABLE dbo.DRJL", sqc.ConnectString); //testing

            Excel.Application app = new Excel.Application(); app.Visible = true;
            Excel.Workbook wb = null;

            foreach (string filename in filenames)
            {
                // date
                string rqGang = Regex.Replace(filename, pattern, replacement);
                string rq = rqGang.Replace("-", "");
                strs.Add(rq);

                string tableName = string.Format("HCYSJ{0}", rq);


                int count = 0;

                string sql = string.Format(sqlPart, tableName);
                MyCommon.ExecuteSql(sql, sqc.ConnectString);

                wb = app.Workbooks.Open(Filename: path + "\\" + filename, ReadOnly: true);
                foreach (Excel.Worksheet sht in wb.Worksheets)
                {
                    count += EUtil.ImportData(sht, myVar, tableName);
                }
                wb.Close();


                sql = string.Format("INSERT INTO dbo.DRJL ( OBJECT_ID, RQ, HS, DRSJ, BM, CZR ) values ('{{{0}}}','{1}',{2},'{3}','{4}',{5}) "
                    , Guid.NewGuid().ToString(), rqGang, count, DateTime.Now.ToString(), tableName, "null");
                MyCommon.ExecuteSql(sql, sqc.ConnectString);

            }


            app.Quit();

            string msg = string.Join(Environment.NewLine, strs.ToArray());
            MessageBox.Show(msg);

        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值