大表逻辑处理过程(5/6/7)

博客围绕大表逻辑过程展开,但具体内容缺失。推测可能涉及大表在信息技术领域的逻辑处理流程等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using CpmBigDataImportService;
using System.Data;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace HCFX
{
    /// <summary>
    /// 分析
    /// </summary>
    public class Fx
    {
        private string yf;
        private SqlConnectConfig sqcFx;

        public Fx(string yf)
        {
            this.yf = yf;
            this.sqcFx = new SqlConnectConfig(".\\sqlexpress", "hcfx" + yf, "xx", "xxx");
        }

        /// <summary>
        /// 某月份在分析库里已经存在的所有日期(yyyyMMdd)
        /// </summary>
        /// <returns></returns>
        private string[] GetRqs()
        {

            string startDate = yf + "01";
            string endDate = (new DateTime(int.Parse(yf.Substring(0, 4)), int.Parse(yf.Substring(4, 2)), 1)).AddMonths(1).AddDays(-1).ToString("yyyyMMdd");

            //遍历日期 数据字典
            string sqlTables = string.Format("SELECT a.name tablename FROM hcfx{0}.sys.tables a WHERE a.type='U' AND a.name LIKE 'ZHSB20%' and right(a.name,8)>= '{1}' and right(a.name,8) <= '{2}' ORDER BY a.name"
                , yf, startDate, endDate);
            //textBox1.Text = sqlTables;
            DataTable dtTables = MyCommon.GetDt(sqlTables, sqcFx.ConnectString);
            if (null == dtTables || dtTables.Rows.Count == 0)
                return null;
            else
            {
                List<string> rqs = new List<string>();
                for (int i = 0; i < dtTables.Rows.Count; i++)
                {
                    string tableName = dtTables.Rows[i][0].ToString();
                    rqs.Add(tableName.Substring(tableName.Length - 8, 8));
                }
                return rqs.ToArray();
            }
        }

        /// <summary>
        /// 按日期挨个输出到工作薄
        /// </summary>
        public void OutPutToExcel()
        {

            string[] rqs = GetRqs();
            if (null == rqs || rqs.Length == 0)
                return;

            Excel.Application app = new Excel.Application();
            app.Visible = true;
            app.DisplayAlerts = false;
            Excel.Workbook wb = null;
            Excel.Worksheet sht = null;

            string path = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
            FxlxLit fxList = new FxlxLit();
            for (int i = 0; i < fxList.Count; i++)
            {
                wb = app.Workbooks.Add();
                string fullName = string.Format("{0}\\{1}_{2}.xlsx", path, fxList[i].Name,yf);

                
                for (int j = 0; j < rqs.Length; j++)
                {
                    sht = wb.Worksheets.Add();
                    fxList[i].WriteToWorksheet(rqs[j], sht, sqcFx);
                }
                wb.SaveAs(Filename: fullName);
            }
            app.DisplayAlerts = true;
        }


        public string GetMsg()
        {
            return string.Join(Environment.NewLine, GetRqs());
        }


    }

    public class FxlxLit : List<FxLx>
    {
        public FxlxLit()
        {
            FxLx fxlx = new FxLx("dqlx", "dq+lx);
            fxlx.SqlPart = "SELECT '{0}' rq, t.dq,t.HCLX,COUNT(*) lxsl FROM dbo.ZHSB{0} t GROUP BY t.dq,t.HCLX";
            this.Add(fxlx);

            fxlx = new FxLx("yjhlx", "yjh+hclx");
            fxlx.SqlPart = "SELECT '{0}' rq, '''' + t.yjh yjh,t.HCLX,COUNT(*) lxsl FROM dbo.ZHSB{0} t WHERE YJH IS NOT NULL AND LEN(yjh)>0 GROUP BY t.YJH,t.HCLX";
            this.Add(fxlx);

            fxlx = new FxLx("dqyf", "dq+yf");
            fxlx.SqlPart = "SELECT '{0}' rq, t.dq, count(*) ydsl,sum(sl) lxsl,sum(yfce) yfce FROM dbo.ZHHB{0} t GROUP BY t.dq";
            this.Add(fxlx);

            fxlx = new FxLx("yjhyf", "yjh+yf");
            fxlx.SqlPart = "SELECT '{0}' rq, '''' + t.yjh yjh, count(*) ydsl,sum(sl) lxsl,sum(yfce) yfce FROM dbo.ZHHB{0} t WHERE YJH IS NOT NULL AND LEN(yjh)>0 GROUP BY t.YJH";
            this.Add(fxlx);
        }

    }

    /// <summary>
    /// 分析类型
    /// </summary>
    public class FxLx
    {
        public string Code { get; set; }
        public string Name { set; get; }
        public string SqlPart { set; get; }
        public FxLx(string code, string name)
        {
            this.Code = Code;
            this.Name = name;
        }

        public void WriteToWorksheet(string rq, Excel.Worksheet sht, SqlConnectConfig sqc)
        {
            string sqlDq = string.Format(SqlPart, rq);
            DataTable dtDq = MyCommon.GetDt(sqlDq, sqc.ConnectString);
            sht.Name = rq;
            MyCommon.FillDtToWorksheet(sht, dtDq);
        }
    }

    /// <summary>
    /// 业务逻辑,导入数据,生成中间表
    /// </summary>
    public class BL
    {
        private SqlConnectConfig sqcBase, sqcSource, sqcFx;
        private Dictionary<string, string> dqDic;
        private ProcessAnalysis pa;
        private string configPath;

        /// <summary>
        /// 构造方法
        /// </summary>
        /// <param name="yf"></param>
        public BL(string yf)
        {
            Regex regYf = new Regex(@"\d{4}");
            if (!regYf.IsMatch(yf))
                throw new Exception("月份格式错误!应为:yyyyMM");

            configPath = AppDomain.CurrentDomain.BaseDirectory ;
            sqcBase = new SqlConnectConfig(".\\sqlexpress", "hc", "xx", "xxx");
            sqcSource = new SqlConnectConfig(".\\sqlexpress", "hc" + yf, "xx", "xxx");
            sqcFx = new SqlConnectConfig(".\\sqlexpress", "hcfx" + yf, "xx", "xxx");
            pa = new ProcessAnalysis(sqcBase);
            //MyCommon.WriteLog(string.Format("\t----dictionary--start:{0}",DateTime.Now.ToString()));
            //MyCommon.WriteLog(string.Format("\t----dictionary--end:{0} count:{1}", DateTime.Now.ToString(), dqDic.Count));

            dqDic = new Dictionary<string, string>();
            DataTable dt = MyCommon.GetDt("select wddm,qmc from dqdm", sqcBase.ConnectString);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow dr = dt.Rows[i];
                dqDic.Add(dr[0].ToString(), dr[1].ToString());
            }

        }

        /// <summary>
        /// 创建数据库
        /// </summary>
        /// <param name="lx">hc</param>
        /// <param name="yf">月份</param>
        public static void CreateDatabase(string lx, string yf)
        {
            /*
                         string yf = "201807";
             BL bl = new BL(yf);
             bl.CreateDatabase("hc",yf);
             MessageBox.Show("Ok");
             */

            string sqlPart = @"
if not exists(select * from master.sys.databases t where t.name='{0}')
begin
	create database hc on primary (name = N'{0}',filename=N'D:\data\{0}.mdf',size = 5120KB, filegrowth = 1024Kb)
		log on (name = N'{0}_log',filename = N'd:\data\{0}_log.ldf',size = 2048KB,filegrowth = 10%)
end


if not exists(select * from master.sys.databases t where t.name='{0}{1}')
begin
	create database {0}{1} on primary (name = N'{0}{1}',filename=N'D:\data\{0}{1}.mdf',size = 5120KB, filegrowth = 1024Kb)
		log on (name = N'{0}{1}_log',filename = N'd:\data\{0}{1}_log.ldf',size = 2048KB,filegrowth = 10%)
end


if not exists(select * from master.sys.databases t where t.name='{0}fx{1}')
begin
	create database {0}fx{1} on primary (name = N'{0}fx{1}',filename=N'D:\data\{0}fx{1}.mdf',size = 5120KB, filegrowth = 1024Kb)
		log on (name = N'{0}fx{1}_log',filename = N'd:\data\{0}fx{1}_log.ldf',size = 2048KB,filegrowth = 10%)
end

";

            string sql = string.Format(sqlPart, lx, yf);
            MyCommon.ExecuteSql(sql, new SqlConnectConfig(".\\sqlexpress", "master", "sa", "szsf").ConnectString);
        }


        /// <summary>
        /// 界面 按钮 文件夹导入
        /// </summary>
        public void ImportDirForButton()
        {

            FolderBrowserDialog fbd = new FolderBrowserDialog();
            fbd.SelectedPath = @"E:\CH\红冲\data1";
            if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {

                string path = fbd.SelectedPath;
                MyCommon.WriteLog("文件夹开始 ------------" + DateTime.Now.ToString());

                ImportHcDataWithinDir(path);

                MyCommon.WriteLog("文件夹结束 ------------" + DateTime.Now.ToString());
                //MessageBox.Show("OK!");
            }
        }

        /// <summary>
        /// 界面 按钮 单个文件导入
        /// </summary>
        public void ImportSingleForButton()
        {

            OpenFileDialog ofg = new OpenFileDialog();
            ofg.InitialDirectory = @"E:\CH\红冲\data1";
            if (ofg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {

                string path = ofg.FileName;
                MyCommon.WriteLog("单文件开始 ------------" + DateTime.Now.ToString());

                ImportHcDataSingleFile(path, sqcSource);

                MyCommon.WriteLog("单文件结束 ------------" + DateTime.Now.ToString());
                MessageBox.Show("OK!");

            }

        }

        /// <summary>
        /// 导入单个文件
        /// </summary>
        /// <param name="filename"></param>
        /// <param name="sqc"></param>
        private void ImportHcDataSingleFile(string fileFullName, SqlConnectConfig sqc)
        {
            MyCommon.WriteLog(string.Format("\t单文件 {0} 导入开始:{1}", fileFullName, DateTime.Now.ToString()));
            string[] tempStrs = fileFullName.Split('\\');
            string filename = tempStrs[tempStrs.Length - 1];


            string xllPath = configPath; 
            string configTableName = "HCYSJ";
            CpmVars myVar = new CpmVars(configTableName, xllPath);
            myVar.Sqc = sqcSource;

            //源数据 +  rq
            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(40),XQYLX NVARCHAR(40),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 pattern = @"(.*)(\d{4}-\d{2}-\d{2})(.*)";
            string replacement = "$2";

            // date
            string rqGang = Regex.Replace(filename, pattern, replacement);
            string rq = rqGang.Replace("-", "");

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


            int count = 0;

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

            Excel.Application app = new Excel.Application();
            app.Visible = false;
            Excel.Workbook wb = null;
            wb = app.Workbooks.Open(Filename: fileFullName, ReadOnly: true);
            foreach (Excel.Worksheet sht in wb.Worksheets)
            {
                count += EUtil.ImportData(sht, myVar, tableName);
            }
            wb.Close();
            app.Visible = true;
            app.Quit();

            GenerateMiddleTables(rq);

            MyCommon.WriteLog(string.Format("\t单文件 {0} 导入结束:{1}", fileFullName, DateTime.Now.ToString()));

        }

        /// <summary>
        /// 生成中间表(横表、竖表)
        /// </summary>
        /// <param name="rq"></param>
        public void GenerateMiddleTables(string rq)
        {

            MyCommon.WriteLog("\t\t生成中间开始 ------------" + DateTime.Now.ToString());

            string tableName = string.Format("HCYSJ{0}", rq);
            string sqlSource = string.Format("select * from {0}", tableName);
            DataTable dtSource = MyCommon.GetDt(sqlSource, sqcSource.ConnectString);
            pa.GetData(dtSource, tableName, dqDic);
            pa.ExportToServer(rq, sqcFx);

            MyCommon.WriteLog("\t\t生成中间结束 ------------" + DateTime.Now.ToString());

        }


        /// <summary>
        /// 导入(文件夹)
        /// </summary>
        /// <param name="path"></param>
        public void ImportHcDataWithinDir(string path)
        {
            //string path = @"E:\CH\红冲\data1";
            string[] filenames = EUtil.RetrieveFilesFromDir(path);

            List<string> strs = new List<string>();
            foreach (string filename in filenames)
            {
                string fullname = path + "\\" + filename;
                ImportHcDataSingleFile(fullname, sqcSource);
                strs.Add(fullname);
            }
            MessageBox.Show(string.Join(Environment.NewLine, strs.ToArray()));
        }
    }


    /// <summary>
    /// hc项目(类型)
    /// </summary>
    public class CompareItem
    {
        public string Lx { set; get; }
        public string Lxdl { set; get; }
        public string ItemA { set; get; }
        public string ItemB { set; get; }

        public string Prompt { set; get; }
        public CompareItem(string lx, string lxdl, string itemA, string itemB, string prompt)
        {
            this.Lx = lx;
            this.Lxdl = lxdl;
            this.ItemA = itemA;
            this.ItemB = itemB;
            this.Prompt = prompt;
        }

        public bool IsSame(DataRow dr)
        {
            if (Lx.Equals("运费"))
                return true;

            Regex reg = new Regex(@"^\s*$");
            object o1 = dr[ItemA]; object o2 = dr[ItemB];

            //两个 null
            if (null == o1 && null == o2)
                return true;
            //一个为null 另一个非null且为空
            else if (
                    (null == o1 && (null != o2 && reg.IsMatch(o2.ToString())))
                ||
                     ((null != o1 && reg.IsMatch(o1.ToString())) && null == o2)
                )
                return true;
            //一个为null 另一个非null且不为空
            else if (
                    (null == o1 && (null != o2 && !reg.IsMatch(o2.ToString())))
                    ||
                    ((null != o1 && !reg.IsMatch(o1.ToString())) && null == o2)
                )
                return false;
            //两个都不为null
            else if (o1.ToString().Equals(o2.ToString()))
                return true;
            else
                return false;
        }

        public string GetMsg()
        {
            return string.Format("{0}-{1}-{2}-{3}-{4}", Lx,Lxdl, Prompt, ItemA, ItemB);
        }
    }

    /// <summary>
    /// hc项目列表(类型)
    /// </summary>
    public class CompareItemList : List<CompareItem>
    {
        public CompareItemList(SqlConnectConfig sqc)
        {
            DataTable dt = MyCommon.GetDt("SELECT OBJECT_ID,LXXH,LX,LXDL,MCA,MCB,BMA,BMB FROM dbo.HCLX ORDER BY LXXH"
                , sqc.ConnectString);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                string lx = dt.Rows[i]["LX"].ToString();
                string lxdl = dt.Rows[i]["LXDL"].ToString();
                string a = dt.Rows[i]["BMA"].ToString();
                string b = dt.Rows[i]["BMB"].ToString(); //getPropName("HCYSJ", dt.Rows[i]["MCB"].ToString(), "hcfxgj"); //
                string p = dt.Rows[i]["LX"].ToString();
                this.Add(new CompareItem(lx,lxdl, a, b, p));
            }
        }
        private string getPropName(string element, string propDispName, string appid)
        {

            AccessHelper acc = new AccessHelper();
            acc.MdbFileName = string.Format(@"d:\appkit\platform\bin\{0}\md_{0}.mdb", appid);
            acc.ConnectionString = string.Format("Provider=Microsoft.Jet.Oledb.4.0;Data Source={0};Persist Security Info=True", acc.MdbFileName);

            string sql = string.Format("select prop_name from MD_SYS_Property where ele_id in (select ele_id from MD_SYS_Element where ele_name='{0}') and prop_dispname='{1}' "
                , element, propDispName);
            DataTable dt = acc.ExecuteDataSet(acc.ConnectionString, sql).Tables[0];

            if (dt.Rows.Count > 0)
            {
                return dt.Rows[0][0].ToString();
            }
            else
                return string.Format("{0}", propDispName);

        }


    }

    /// <summary>
    /// 生成中间表
    /// </summary>
    public class ProcessAnalysis
    {
        private DataTable dtHb;
        private DataTable dtSb;
        private CompareItemList clist;


        public ProcessAnalysis(SqlConnectConfig sqcBase)
        {
            //lc类型列表
            clist = new CompareItemList(sqcBase);
            #region 初始化 横表 竖表
            //竖表
            dtSb = new DataTable();
            dtSb.Columns.Add("OBJECT_ID", typeof(string));
            dtSb.Columns.Add("OID", typeof(string));
            dtSb.Columns.Add("RQ", typeof(System.DateTime));
            dtSb.Columns.Add("WDDM", typeof(string));
            dtSb.Columns.Add("YJH", typeof(string));
            dtSb.Columns.Add("YBM", typeof(string));
            dtSb.Columns.Add("HCLX", typeof(string));
            dtSb.Columns.Add("HCLXDL", typeof(string));
            dtSb.Columns.Add("YZ", typeof(string));
            dtSb.Columns.Add("XZ", typeof(string));
            dtSb.Columns.Add("DQ", typeof(string));
            //横表
            dtHb = new DataTable();
            dtHb.Columns.Add("OBJECT_ID", typeof(string));
            dtHb.Columns.Add("OID", typeof(string));
            dtHb.Columns.Add("RQ", typeof(System.DateTime));
            dtHb.Columns.Add("WDDM", typeof(string));
            dtHb.Columns.Add("YJH", typeof(string));
            dtHb.Columns.Add("YBM", typeof(string));
            dtHb.Columns.Add("LXSL", typeof(int));
            dtHb.Columns.Add("LXDLSL", typeof(int));
            dtHb.Columns.Add("YFCE", typeof(string));
            dtHb.Columns.Add("DQ", typeof(string));
            dtHb.PrimaryKey = new DataColumn[] { dtHb.Columns["OID"] };
            #endregion
        }


        /// <summary>
        /// 根据已导入的源数据生成横竖表
        /// </summary>
        /// <param name="dtSource"></param>
        /// <param name="tableName">源表名称,为查询做铺垫</param>
        public void GetData(DataTable dtSource, string tableName, Dictionary<string, string> dqDic)
        {
            dtHb.Clear();
            dtSb.Clear();

            for (int j = 0; j < dtSource.Rows.Count; j++)
            {
                DataRow drSource = dtSource.Rows[j];

                string wddm = (DBNull.Value == drSource["YJDWDDM"] || string.IsNullOrEmpty(drSource["YJDWDDM"].ToString())) ? "----" : drSource["YJDWDDM"].ToString();
                string dq = "----".Equals(wddm) ? "yjdwd为空" : dqDic.ContainsKey(wddm) ? dqDic[wddm] : "无对应dq";
                object yjh = drSource["YJZH"];
                

                int itemCount = 0;
                object[] contents = null;

                for (int m = 0; m < clist.Count; m++)
                {
                    if (!clist[m].IsSame(drSource))
                    {
                        if (clist[m].Lx.Equals("月结帐号") && string.IsNullOrEmpty(clist[m].ItemB))
                        {
                            yjh =clist[m].ItemA;
                        }
                        
                        contents = new object[] { "{" + Guid.NewGuid().ToString()+"}" 
                                                    ,drSource["OBJECT_ID"]
                                                    ,DateTime.ParseExact(drSource["HCSJ"].ToString().Substring(0,10),"yyyy-MM-dd",System.Globalization.CultureInfo.InvariantCulture)
                                                    ,drSource["YJDWDDM"] 
                                                    ,yjh
                                                        ,tableName
                                                        ,clist[m].Lx,clist[m].Lxdl
                                                        ,drSource[clist[m].ItemA]
                                                        ,drSource[clist[m].ItemB]
                                                        ,dq
                                                    };
                        DataRow drSb = dtSb.NewRow();
                        drSb.ItemArray = contents;
                        dtSb.Rows.Add(drSb);
                        itemCount++;
                    }
                }
                if (itemCount > 0)
                {
                    contents = new object[]{
                                        "{" + Guid.NewGuid().ToString()+"}" 
                                        ,drSource["OBJECT_ID"]
                                        ,DateTime.ParseExact(drSource["HCSJ"].ToString().Substring(0,10),"yyyy-MM-dd",System.Globalization.CultureInfo.InvariantCulture)
                                        ,drSource["YJDWDDM"]
                                        ,yjh
                                        ,tableName
                                        ,itemCount,0
                                        ,(DBNull.Value == drSource["CE"] || string.IsNullOrEmpty(drSource["CE"].ToString()) ) ? 0 : -1*decimal.Parse(drSource["CE"].ToString())
                                        ,dq
                                };
                    DataRow drHb = dtHb.NewRow();
                    drHb.ItemArray = contents;
                    dtHb.Rows.Add(drHb);
                };

            }

        }

        /// <summary>
        /// 写入数据库表
        /// </summary>
        /// <param name="sbName">竖表名称(数据库)</param>
        /// <param name="hbName">横表名称(数据库)</param>
        public void ExportToServer(string rq, SqlConnectConfig sqcFx)
        {
            //testing..........
            /*
            Excel.Application app = new Excel.Application();
            app.Visible = true;
            MyCommon.FillDtToWorksheet(app, EUtil.GetLongestLenth(dtSb));
            MyCommon.FillDtToWorksheet(app, EUtil.GetLongestLenth(dtHb));
            */
            //return;

            string tableName = string.Format("ZHSB{0}", rq);
            string sqlPart = @"IF OBJECT_ID(N'{0}',N'U') IS NOT  NULL 
	                                drop TABLE {0}
                            create table {0} (OBJECT_ID NVARCHAR(38) NOT NULL,OID NVARCHAR(38) NOT NULL,RQ DATETIME,WDDM NVARCHAR(20),DQ NVARCHAR(100),YJH NVARCHAR(20),YBM NVARCHAR(50),HCLX NVARCHAR(20) NOT NULL,HCLXDL NVARCHAR(20) NOT NULL,YZ NVARCHAR(50),XZ NVARCHAR(50), primary key(OID, HCLX))
                            ";
            string sql = string.Format(sqlPart, tableName); MyCommon.ExecuteSql(sql, sqcFx.ConnectString);

            sqcFx.TableName = tableName; //"ZHSB";
            EUtil.CopyDtToServer(dtSb, sqcFx);

            sql = string.Format("CREATE INDEX sb{0}_lx ON zhsb{0}(HCLX)", rq); MyCommon.ExecuteSql(sql, sqcFx.ConnectString);
            sql = string.Format("CREATE INDEX sb{0}_yjh ON zhsb{0}(YJH)", rq); MyCommon.ExecuteSql(sql, sqcFx.ConnectString);
            sql = string.Format("CREATE INDEX sb{0}_wddm ON zhsb{0}(WDDM)", rq); MyCommon.ExecuteSql(sql, sqcFx.ConnectString);
            sql = string.Format("CREATE INDEX sb{0}_dq ON zhsb{0}(DQ)", rq); MyCommon.ExecuteSql(sql, sqcFx.ConnectString);



            tableName = string.Format("ZHHB{0}", rq);
            sqlPart = @"IF OBJECT_ID(N'{0}',N'U') IS NOT  NULL 
	                           drop TABLE {0}
                        create table {0} (OBJECT_ID NVARCHAR(38) NOT NULL,OID NVARCHAR(38) NOT NULL,RQ DATETIME,WDDM NVARCHAR(20),DQ NVARCHAR(100),YJH NVARCHAR(20),YBM NVARCHAR(50),LXSL INT,LXDLSL INT,YFCE DECIMAL(15,2), primary key(OID))
                         ";
            sql = string.Format(sqlPart, tableName);
            MyCommon.ExecuteSql(sql, sqcFx.ConnectString);

            sqcFx.TableName = tableName;// "ZHHB";
            EUtil.CopyDtToServer(dtHb, sqcFx);

            sql = string.Format("CREATE INDEX hb{0}_yjh ON zhhb{0}(YJH)", rq); MyCommon.ExecuteSql(sql, sqcFx.ConnectString);
            sql = string.Format("CREATE INDEX hb{0}_wddm ON zhhb{0}(WDDM)", rq); MyCommon.ExecuteSql(sql, sqcFx.ConnectString);
            sql = string.Format("CREATE INDEX hb{0}_dq ON zhhb{0}(DQ)", rq); MyCommon.ExecuteSql(sql, sqcFx.ConnectString);

            this.dtHb.Clear();
            this.dtHb.Clear();
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值