コード例 #1
0
        public static void DownloadFile(string sSourceFilePath, string sSaveFileName, bool isOverWrite)
        {
            try
            {
                SaveFileDialog saveDialog = new SaveFileDialog();
                saveDialog.DefaultExt  = "xlsx";
                saveDialog.Filter      = "Excel文件(*.xlsx)|*.xlsx";
                saveDialog.FileName    = sSaveFileName + "_" + DateTime.Now.ToyyyyMMddHHmmss();
                saveDialog.FilterIndex = 1;
                //saveDialog.OverwritePrompt = true;
                if (saveDialog.ShowDialog() == DialogResult.OK)
                {
                    string fileName     = UIHelper.GetSystemFullPath(sSourceFilePath);
                    string destFileName = saveDialog.FileName;

                    if (System.IO.File.Exists(fileName))
                    {
                        System.IO.File.Copy(fileName, destFileName, isOverWrite);
                        MsgHelper.ShowInfo(string.Format("下载成功,文件保存在 {0}", destFileName));
                    }
                    else
                    {
                        MsgHelper.ShowErr("模板文件不存在,下载失败!");
                    }
                }
            }
            catch (Exception ex)
            {
                MsgHelper.ShowErr(ex.Message);
            }
        }
コード例 #2
0
        private void llModelDown_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            try
            {
                SaveFileDialog saveDialog = new SaveFileDialog();
                saveDialog.DefaultExt  = "xlsx";
                saveDialog.Filter      = "Excel文件(*.xlsx)|*.xlsx";
                saveDialog.FilterIndex = 1;
                if (saveDialog.ShowDialog(this) == DialogResult.OK)
                {
                    string fileName     = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase.ToString() + (@"\ModelFile\生成IBD文件导入模板.xlsx");
                    string destFileName = saveDialog.FileName;

                    if (System.IO.File.Exists(fileName))
                    {
                        System.IO.File.Copy(fileName, destFileName);
                        MsgHelper.ShowInfo(string.Format("下载成功,文件保存在 {0}", destFileName));
                    }
                    else
                    {
                        MsgHelper.ShowErr("模板文件不存在,下载失败!");
                    }
                }
            }
            catch (Exception ex)
            {
                MsgHelper.ShowErr("下载失败,出现异常!" + ex.Message);
            }
        }
コード例 #3
0
        private void tsmiFtable_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtPath.Text == "")
                {
                    MsgHelper.ShowInfo("请您设置存放路径!");
                }
                else if (checkTxt() && (treeNode.Node.Level == 1))
                {
                    string sEntityType = cbbEntityType.SelectedValue.ToString();
                    if (sEntityType == _sStringColumnList)
                    {
                        entityList = _entiyBiz.BuildCustomEntity(dataTables, txtNameSpace.Text.Trim(), txtAccess.Text.Trim(), txtClassPreString.Text.Trim(), txtClassEndString.Text.Trim(), txtPath.Text.Trim());
                    }
                    else if (sEntityType == _sStringColumn)
                    {
                        entityList = _entiyBiz.BuildTableColumnNameEntity(dataTables, txtNameSpace.Text.Trim(), txtAccess.Text.Trim(), txtClassPreString.Text.Trim(), txtClassEndString.Text.Trim(), txtPath.Text.Trim());
                    }
                    else
                    {
                        entityList = _entiyBiz.BuildEntity(dataTables, txtNameSpace.Text.Trim(), txtAccess.Text.Trim(), txtClassPreString.Text.Trim(), txtClassEndString.Text.Trim(), txtPath.Text.Trim());
                    }

                    if (entityList.Count > 0)
                    {
                        dgvEntityInfo.DataSource = entityList;
                    }
                }
            }
            catch (Exception exception)
            {
                MsgHelper.ShowErr(exception.Message);
            }
        }
コード例 #4
0
        private void tsbSave_Click(object sender, EventArgs e)
        {
            DataTable dtSource = dgvQuery.GetBindingTable();

            if (dtSource == null || dtSource.Rows.Count == 0)
            {
                MsgHelper.ShowErr("没有要保存的数据!");
                return;
            }
            _dllSet.SaveXMLFile(dtSource, _dllSet.GetFileName());
            MsgHelper.ShowInfo("保存成功!");
        }
コード例 #5
0
        /// <summary>
        /// 保存按钮事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbSave_Click(object sender, EventArgs e)
        {
            groupBox1.Focus();
            BindingSource bs = (BindingSource)dgvKey.DataSource;

            bs.EndEdit();
            DataTable dt     = (DataTable)bs.DataSource;
            DataTable dtSave = dt.GetChanges();

            if (dtSave == null || dtSave.Rows.Count == 0)
            {
                MsgHelper.ShowInfo("没有修改数据,不用保存!");
                return;
            }
            _kv.SaveXMLFile(dtSave, _FileName);
            MsgHelper.ShowInfo("保存成功!");
        }
コード例 #6
0
 private void tsbAutoSQL_Click(object sender, EventArgs e)
 {
     try
     {
         string    sbAllSql = "";
         DataTable dtMain   = (DataTable)bsTable.DataSource;
         if (dtMain.Rows.Count == 0)
         {
             MsgHelper.ShowInfo("没有可生成的数据!");
             return;
         }
         for (int i = 0; i < dtMain.Rows.Count; i++)
         {
             //初始化单条数据为书写的文本
             string strOneData = rtbConString.Text.Trim();
             for (int j = 0; j < dtMain.Columns.Count; j++)
             {
                 string strData = dtMain.Rows[i][j].ToString().Trim();
                 //将数据中的列名替换为单元格中的数据
                 strOneData = strOneData.Replace("#" + dtMain.Columns[j].ColumnName + "#", strData);
             }
             //所有SQL文本累加
             sbAllSql += strOneData + "\n";
         }
         //保存属性
         //PropSetting.Default.Save();
         rtbResult.Clear();
         rtbResult.AppendText(sbAllSql.ToString() + "\n");
         Clipboard.SetData(DataFormats.UnicodeText, sbAllSql.ToString());
         tabControl1.SelectedTab = tpAutoSQL;
         //生成SQL成功后提示
         //MessageBox.Show(strInfo, "生成成功", MessageBoxButtons.OK);
         lblInfo.Text = _strAutoSqlSuccess;
         rtbResult.Select(0, 0); //返回到第一行
     }
     catch (Exception ex)
     {
         MsgHelper.ShowErr(ex.Message);
     }
 }
コード例 #7
0
        private void tsbAutoSQL_Click(object sender, EventArgs e)
        {
            #region 表列扩展属性变更
            int          iDbType      = int.Parse(cbbDbType.SelectedValue.ToString());
            DataBaseType selectDBType = (DataBaseType)iDbType;
            if (selectDBType == DataBaseType.SQLite)
            {
                MsgHelper.ShowInfo("SQLite不支持注释!");
                return;
            }
            //取得数据源
            DataTable dtMain = (DataTable)bsTable.DataSource;

            #region 移除空行
            string strColNameList = "";
            for (int k = 0; k < dtMain.Columns.Count; k++)
            {
                string strOneDataCol = "([" + dtMain.Columns[k].ColumnName + "] is null or [" + dtMain.Columns[k].ColumnName + "]='') ";
                if (k != 0)
                {
                    strColNameList = strColNameList + "and " + strOneDataCol;
                }
                else
                {
                    strColNameList = strColNameList + strOneDataCol;
                }
            }
            foreach (DataRow dr in dtMain.Select(strColNameList))
            {
                dtMain.Rows.Remove(dr);
            }
            #endregion

            //得到变更后数据
            dtMain.AcceptChanges();
            if (dtMain.Rows.Count == 0)
            {
                MsgHelper.ShowInfo("没有可生成的数据!");
                return;
            }
            string strExtendList = "";
            int    iTableExtend  = 1;
            string sbAllSql      = "";
            if (selectDBType == DataBaseType.SqlServer)
            {
                #region SqlServer
                foreach (DataRow drCol in dtMain.Rows)
                {
                    string strExtendTableName = drCol["表名"].ToString();
                    string strExtendColName   = drCol["列名"].ToString();
                    string strExtendText      = drCol["扩展属性说明"].ToString();

                    string strExtend = " SELECT " + StringHelper.ChangeIntoSqlString(strExtendTableName) + " TABLE_NAME,"
                                       + StringHelper.ChangeIntoSqlString(strExtendColName) + " COLUMNS_NAME,"
                                       + StringHelper.ChangeIntoSqlString(strExtendText) + " EXTEND_TEXT"
                                       + " \n";
                    if (iTableExtend != 1)
                    {
                        strExtend = " UNION " + strExtend;
                    }
                    strExtendList = strExtendList + strExtend;
                    iTableExtend++;
                }
                //读取并替换
                sbAllSql = File.ReadAllText(UIHelper.GetSystemFullPath(@"SqlScript/1.001_修改表列说明.sql"), Encoding.Default).Replace("#EXTEND_LIST#", strExtendList);
                #endregion
            }
            else
            {
                foreach (DataRow drCol in dtMain.Rows)
                {
                    string strExtendTableName = drCol["表名"].ToString();
                    string strExtendColName   = drCol["列名"].ToString();
                    string strExtendText      = drCol["扩展属性说明"].ToString().Trim();
                    if (string.IsNullOrEmpty(strExtendTableName))
                    {
                        iTableExtend++;
                        continue;
                    }

                    if (string.IsNullOrEmpty(strExtendColName))
                    {
                        if (selectDBType == DataBaseType.Oracle)
                        {
                            strExtendList += string.Format(@"COMMENT ON TABLE {0} IS '{1}';" + "\n", strExtendTableName, strExtendText);
                        }
                        else if (selectDBType == DataBaseType.MySql)
                        {
                            strExtendList += string.Format(@"ALTER TABLE {0} COMMENT = '{1}';" + "\n", strExtendTableName, strExtendText);
                        }
                        else if (selectDBType == DataBaseType.PostgreSql)
                        {
                            //
                            strExtendList += string.Format(@"COMMENT ON TABLE {0} IS '{1}';" + "\n", strExtendTableName, strExtendText);
                        }
                        else
                        {
                            throw new Exception("暂不支持该数据库类型");
                        }
                    }
                    else
                    {
                        if (selectDBType == DataBaseType.Oracle)
                        {
                            strExtendList += string.Format(@"COMMENT ON COLUMN {0}.{1} IS '{2}';" + "\n", strExtendTableName, strExtendColName, strExtendText);
                        }
                        else if (selectDBType == DataBaseType.MySql)
                        {
                            //需要加上原字段信息,所以建议利用修改表列的SQL来修改
                            //strExtendList += string.Format(@"ALTER TABLE {0} MODIFY COLUMN {1} COMMENT '{2}';" + "\n", strExtendTableName, strExtendColName, strExtendText);
                        }
                        else if (selectDBType == DataBaseType.PostgreSql)
                        {
                            //
                            strExtendList += string.Format(@"COMMENT ON COLUMN {0}.{1} IS '{2}';" + "\n", strExtendTableName, strExtendColName, strExtendText);
                        }
                        else
                        {
                            throw new Exception("暂不支持该数据库类型");
                        }
                    }
                    iTableExtend++;
                }
                sbAllSql = strExtendList;
            }
            //生成SQL并提示
            rtbResult.Clear();
            rtbResult.AppendText(sbAllSql.ToString() + "\n");
            Clipboard.SetData(DataFormats.UnicodeText, sbAllSql.ToString());
            tabControl1.SelectedTab = tpAutoSQL;
            //生成SQL成功后提示
            //MessageBox.Show(strInfo, "生成成功", MessageBoxButtons.OK);
            lblInfo.Text = _strAutoSqlSuccess;
            rtbResult.Select(0, 0); //返回到第一
            return;

            #endregion
        }
コード例 #8
0
        private void tsmiDelete_Click(object sender, EventArgs e)
        {
            //设置上级菜单
            TreeNode trSelect = tvLeftMenu.SelectedNode;

            if (trSelect == null)
            {
                return;
            }
            if (trSelect.GetNodeCount(true) > 0)
            {
                MsgHelper.ShowErr("请先删除子节点!");
                return;
            }

            if (MsgHelper.ShowOkCancel("确定要删除该菜单?") == DialogResult.Cancel)
            {
                return;
            }

            DMenu       selectMenu = trSelect.Tag as DMenu;
            XmlDocument xmlMenu    = DMenu.ReadMenuXmlFile(AppType.WinForm);

            #region  除
            XmlNode xnNew;
            switch (_saveMenu.MenuType)
            {
            case MenuTypeEnum.Modul:
                xnNew = xmlMenu.SelectSingleNode("xml/Model[@Guid='" + selectMenu.Guid + "']");
                xnNew.ParentNode.RemoveChild(xnNew);
                break;

            case MenuTypeEnum.Class:
                //第一个分类
                xnNew = xmlMenu.SelectSingleNode("xml/Model/Class[@Guid='" + selectMenu.Guid + "']");

                if (xnNew == null)
                {
                    //第二个菜单分类
                    xnNew = xmlMenu.SelectSingleNode("xml/Model/Class/Class[@Guid='" + selectMenu.Guid + "']");
                }

                if (xnNew == null)
                {
                    //最多支持第三个菜单分类
                    xnNew = xmlMenu.SelectSingleNode("xml/Model/Class/Class/Class[@Guid='" + selectMenu.Guid + "']");
                }
                xnNew.ParentNode.RemoveChild(xnNew);
                break;

            case MenuTypeEnum.Menu:
            default:
                //第一个分类
                xnNew = xmlMenu.SelectSingleNode("xml/Model/Class/Menu[@Guid='" + selectMenu.Guid + "']");

                if (xnNew == null)
                {
                    //第二个菜单分类
                    xnNew = xmlMenu.SelectSingleNode("xml/Model/Class/Class/Menu[@Guid='" + selectMenu.Guid + "']");
                }

                if (xnNew == null)
                {
                    //最多支持第三个菜单分类
                    xnNew = xmlMenu.SelectSingleNode("xml/Model/Class/Class/Class/Menu[@Guid='" + selectMenu.Guid + "']");
                }

                xnNew.ParentNode.RemoveChild(xnNew);
                break;
            }
            #endregion

            //保存
            xmlMenu.Save(DMenu.MenuXmlFilePath);
            MsgHelper.ShowInfo("删除成功!");
            UIHelper.ResetControl(grpEdit);
            //重新加载菜单
            LoadMenu();
        }
コード例 #9
0
        private void tsbSave_Click(object sender, EventArgs e)
        {
            _saveMenu.Name        = txbMenuName.Text.Trim();
            _saveMenu.Code        = txbMenuCode.Text.Trim();
            _saveMenu.DLLName     = cbbDLL.Text;
            _saveMenu.FormName    = txbClassFullPath.Text.Trim();
            _saveMenu.ShortCutKey = txbShortCutKey.Text.Trim();
            if (string.IsNullOrEmpty(_saveMenu.Name))
            {
                MsgHelper.ShowErr("【菜单名称】不能为空!");
                return;
            }
            bool        isAdd   = false;
            XmlDocument xmlMenu = DMenu.ReadMenuXmlFile(AppType.WinForm);

            if (string.IsNullOrEmpty(_saveMenu.Guid))
            {
                isAdd = true;
            }

            #region 新增
            XmlElement xnNew;
            switch (_saveMenu.MenuType)
            {
            case MenuTypeEnum.Modul:
                xnNew = xmlMenu.CreateElement("Model");
                if (isAdd)
                {
                    xnNew.SetAttribute(MemuAttrString.Guid, StringHelper.GetGUID());
                    xmlMenu.DocumentElement.AppendChild(xnNew);
                }
                else
                {
                    xnNew = xmlMenu.SelectSingleNode("xml/Model[@Guid='" + _saveMenu.Guid + "']") as XmlElement;
                }
                break;

            case MenuTypeEnum.Class:
                xnNew = xmlMenu.CreateElement("Class");
                if (isAdd)
                {
                    xnNew.SetAttribute(MemuAttrString.Guid, StringHelper.GetGUID());
                    //先找模块
                    XmlNode xnParent = xmlMenu.SelectSingleNode("xml/Model[@Guid='" + _saveMenu.ParentGuid + "']");
                    if (xnParent != null)
                    {
                        xnParent.AppendChild(xnNew);
                    }
                }
                if (xnNew.ParentNode == null)
                {
                    //第一个分类
                    GetClassNode(isAdd, xmlMenu, "xml/Model/Class", ref xnNew);
                }

                if (xnNew.ParentNode == null)
                {
                    //第二个菜单分类
                    GetClassNode(isAdd, xmlMenu, "xml/Model/Class/Class", ref xnNew);
                }

                if (xnNew.ParentNode == null)
                {
                    //最多支持第三个菜单分类
                    GetClassNode(isAdd, xmlMenu, "xml/Model/Class/Class/Class", ref xnNew);
                }
                break;

            case MenuTypeEnum.Menu:
            default:
                if (string.IsNullOrEmpty(_saveMenu.DLLName))
                {
                    MsgHelper.ShowErr("【所在DLL文件】不能为空!");
                    return;
                }
                if (string.IsNullOrEmpty(_saveMenu.FormName))
                {
                    MsgHelper.ShowErr("【全路径类名】不能为空!");
                    return;
                }

                xnNew = xmlMenu.CreateElement("Menu");
                if (isAdd)
                {
                    xnNew.SetAttribute(MemuAttrString.Guid, StringHelper.GetGUID());
                }
                //第一个分类
                GetMenuNode(isAdd, xmlMenu, "xml/Model/Class", "xml /Model/Class/Menu", ref xnNew);

                if (xnNew.ParentNode == null)
                {
                    //第二个菜单分类
                    GetMenuNode(isAdd, xmlMenu, "xml/Model/Class/Class", "xml/Model/Class/Class/Menu", ref xnNew);
                }

                if (xnNew.ParentNode == null)
                {
                    //最多支持第三个菜单分类
                    GetMenuNode(isAdd, xmlMenu, "xml/Model/Class/Class/Class", "xml/Model/Class/Class/Class/Menu", ref xnNew);
                }
                break;
            }
            #endregion

            xnNew.SetAttribute(MemuAttrString.Name, _saveMenu.Name);
            xnNew.SetAttribute(MemuAttrString.Code, _saveMenu.Code);
            xnNew.SetAttribute(MemuAttrString.DLLName, _saveMenu.DLLName);
            xnNew.SetAttribute(MemuAttrString.FormName, _saveMenu.FormName);
            xnNew.SetAttribute(MemuAttrString.ShortCutKey, _saveMenu.ShortCutKey);
            //保存
            xmlMenu.Save(DMenu.MenuXmlFilePath);
            MsgHelper.ShowInfo("保存成功!");
            UIHelper.ResetControl(grpEdit);
            //重新加载菜单
            LoadMenu();
        }
コード例 #10
0
        private void tsbGenIBDFile_Click(object sender, EventArgs e)
        {
            try
            {
                if (dsExcel == null)
                {
                    MsgHelper.ShowInfo("请先导入!");
                    return;
                }
                DataTable dtMain      = (DataTable)(dgvIBDFileList.DataSource as BindingSource).DataSource;
                DataTable dtList      = dsExcel.Tables[_strLayerList];
                string    strMainPath = txbIBDMainPath.Text.Trim();
                if (string.IsNullOrEmpty(strMainPath))
                {
                    MsgHelper.ShowInfo("请选择“生成的根目录”!");
                    return;
                }
                string strClassPre = txbIBDClassPre.Text.Trim().ToUpper();
                list        = new List <EntityInfo>();
                strMainPath = strMainPath + @"\IBD自动生成文件夹\";
                for (int i = 0; i < dtMain.Rows.Count; i++)
                {
                    string    strPath          = dtMain.Rows[i]["文件目录相对路径"].ToString().Replace("/", "\\");
                    string    strFromLayerName = dtMain.Rows[i]["项目分层全称"].ToString().Trim();
                    string    strLayerType     = dtMain.Rows[i]["分层类型"].ToString().Trim();
                    DataRow[] drFrom           = dtList.Select("项目分层全称 = '" + strFromLayerName + "' AND 分层类型='" + strLayerType + "'");
                    if (drFrom.Length == 0)
                    {
                        MsgHelper.ShowInfo("“" + strPath + "”的项目分层全称未定义,请修改或在[项目分层清单]里增加!");
                        return;
                    }
                    string strSpaceName = strPath.Replace("\\", ".");//空间名
                    string strClassName = strClassPre + dtMain.Rows[i]["类名"].ToString();

                    if (!strPath.EndsWith("\\"))
                    {
                        strPath += "\\";
                    }

                    //当前使用的项目层集合
                    DataTable dtUseLaye = dtList.Clone();
                    foreach (DataRow dr in dtList.Select("分层类型='" + drFrom[0]["分层类型"] + "'"))
                    {
                        dtUseLaye.ImportRow(dr);
                    }


                    string Ipath  = strMainPath + ReplaceString(strPath, "0", "I", strFromLayerName, dtUseLaye);
                    string Bpath  = strMainPath + ReplaceString(strPath, "0", "B", strFromLayerName, dtUseLaye);
                    string Dpath  = strMainPath + ReplaceString(strPath, "0", "D", strFromLayerName, dtUseLaye);
                    string IDpath = strMainPath + ReplaceString(strPath, "0", "ID", strFromLayerName, dtUseLaye);
                    string UIpath = strMainPath + ReplaceString(strPath, "0", "U", strFromLayerName, dtUseLaye);

                    string ISpaceName  = ReplaceString(strSpaceName + ".", "1", "I", strFromLayerName, dtUseLaye);
                    string BSpaceName  = ReplaceString(strSpaceName + ".", "1", "B", strFromLayerName, dtUseLaye);
                    string DSpaceName  = ReplaceString(strSpaceName + ".", "1", "D", strFromLayerName, dtUseLaye);
                    string IDSpaceName = ReplaceString(strSpaceName + ".", "1", "ID", strFromLayerName, dtUseLaye);
                    string UISpaceName = ReplaceString(strSpaceName + ".", "1", "U", strFromLayerName, dtUseLaye);

                    if (!Directory.Exists(Ipath))
                    {
                        Directory.CreateDirectory(Ipath);
                    }
                    if (!Directory.Exists(Bpath))
                    {
                        Directory.CreateDirectory(Bpath);
                    }
                    if (!Directory.Exists(IDpath))
                    {
                        Directory.CreateDirectory(IDpath);
                    }
                    if (!Directory.Exists(Dpath))
                    {
                        Directory.CreateDirectory(Dpath);
                    }
                    if (!Directory.Exists(UIpath))
                    {
                        Directory.CreateDirectory(UIpath);
                    }
                    //生成接口文件
                    GenerateIFile(Ipath, ISpaceName, strClassName);                                 //I
                    GenerateBFile(Bpath, BSpaceName, strClassName, strFromLayerName, dtUseLaye);    //B
                    GenerateIDFile(IDpath, IDSpaceName, strClassName);                              //ID
                    GenerateDFile(Dpath, DSpaceName, strClassName);                                 //D
                    GenerateUIFile(UIpath, UISpaceName, strClassName, strFromLayerName, dtUseLaye); //UI
                }
                //提示成功
                MsgHelper.ShowInfo("生成成功!");
            }
            catch (Exception ex)
            {
                MsgHelper.ShowErr(ex.Message);
            }
        }
コード例 #11
0
        private void tsbAutoSQL_Click(object sender, EventArgs e)
        {
            #region 生成增删改查SQL

            #region 变量
            StringBuilder sbAllSql                 = new StringBuilder();
            string        strEndDicSetValue        = "";                                                       //字典参数赋值,在SQL末尾增加。目前MDS中用到
            string        strEndDicInRemark        = "";                                                       //注释中的传入字典参数说明。目前MDS中用到
            string        strEndColumnsRemark      = "";                                                       //注释中的列参数说明。目前MDS中用到
            string        strEndTableColumnsRemark = "/// <param type=\"DataTable\" name=\"#PART#\">出库备件清单\n"; //注释中的表列参数说明。目前MDS中用到
            string        strFileDictionaryRemark  = "";                                                       //开发指导书字典注释。目前MDS中用到
            string        strFileTableColumnRemark = "";                                                       //开发指导书表的列注释。目前MDS中用到
            string        strWhereFirst            = "WHERE 1=1 \r";
            string        strWhereNoFirst          = "WHERE ";
            string        strConditionPre          = "WHERE 1=1 \r"; //条件前缀
            string        strAnd   = " AND ";
            string        strWhere = "";

            string strMDSQueryParm        = ""; //MDS查询的参数
            string strMDSInsertUpdateParm = ""; //新增修改的参数
                                                //已增加的列键
            IDictionary <string, string> dicHaveAddColumnKey = new Dictionary <string, string>();
            strClassCode = txbClassCode.Text.Trim();
            strClassCn   = txbClassNameCn.Text.Trim();
            bool _isQueryParm = cbbParaType.SelectedValue.ToString() == "2" ? true : false;//是否SQL参数化
            #endregion

            #region 取得数据
            string  strTwoType = cmbType.SelectedValue.ToString();
            SqlType sqlTypeNow = SqlType.Query;;
            switch (strTwoType)
            {
            case "1":
                sqlTypeNow = SqlType.Insert;
                break;

            case "2":
                sqlTypeNow = SqlType.Update;
                break;

            case "3":
                sqlTypeNow = SqlType.Query;
                break;

            case "4":
                sqlTypeNow = SqlType.Delete;
                break;

            default:
                sqlTypeNow = SqlType.Query;
                break;
            }
            //取得数据源
            DataTable dtMain = (DataTable)GlobalValue.Instance.dicBindingSource[_strTableName].DataSource;
            DataTable dtSec  = (DataTable)GlobalValue.Instance.dicBindingSource[_strColName].DataSource;
            //移除空行
            dtMain.DeleteNullRow();
            //得到变更后数据
            dtMain.AcceptChanges();
            dtSec.AcceptChanges();
            #endregion

            #region 获取默认值、排除列配置信息
            //获取默认值、排除列配置信息
            DataTable dtDefault = null;
            DataTable dtExclude = null;
            string    strTSName = "";

            if (_dbServer.DatabaseType == DataBaseType.SqlServer)
            {
                #region Sql Server
                _kv                 = new KeyValue(DataBaseType.SqlServer, AutoSqlColumnSetType.Default);
                dtDefault           = _kv.LoadXMLFile();
                _kv                 = new KeyValue(DataBaseType.SqlServer, AutoSqlColumnSetType.Exclude);
                dtExclude           = _kv.LoadXMLFile();
                strTSName           = txbOrcTableShortName.Text.Trim().Replace(".", "").Replace("'", "");
                strTableAlias       = " " + strTSName;//只有查询用别名,其他语句不能使用
                strTableAliasAndDot = strTableAlias + ".";
                if (_isQueryParm)
                {
                    strEndTableColumnsRemark = "/// <param type=\"DataTable\" name=\"PART\">出库备件清单\n";//注释中的表列参数说明。目前MDS中用到
                }
                #endregion
            }
            else
            {
                #region Oracle
                _kv                 = new KeyValue(DataBaseType.Oracle, AutoSqlColumnSetType.Default);
                dtDefault           = _kv.LoadXMLFile();
                _kv                 = new KeyValue(DataBaseType.Oracle, AutoSqlColumnSetType.Exclude);
                dtExclude           = _kv.LoadXMLFile();
                strTSName           = txbOrcTableShortName.Text.Trim().Replace(".", "").Replace("'", "");
                strTableAlias       = string.IsNullOrEmpty(strTSName) ? " A" : " " + strTSName;//查询和修改中的别名:注前面的空格为必须
                strTableAliasAndDot = strTableAlias + ".";
                if (_isQueryParm)
                {
                    strEndTableColumnsRemark = "/// <param type=\"DataTable\" name=\"PART\">出库备件清单\n";//注释中的表列参数说明。目前MDS中用到
                }
                #endregion
            }


            if (sqlTypeNow == SqlType.Insert && string.IsNullOrEmpty(strTSName))
            {
                strTableAliasAndDot = "";
            }
            #endregion

            #region 得到有效的数据
            DataTable dtSecCopy      = dtSec.Clone();
            DataTable dtSecCondition = dtSec.Clone();
            //得到并发ID行
            DataRow[] drUpdateControlColumn = dtSec.Select("COLUMN_NAME='" + _strUpdateCtrolColumnCode + "'");
            //得到查询条件集合
            foreach (DataRow dr in dtSec.Select("条件='True' and COLUMN_NAME<>'" + _strUpdateCtrolColumnCode + "'"))
            {
                dtSecCondition.ImportRow(dr);
            }
            //得到有效的列
            foreach (DataRow dr in dtSec.Select("选择='True' and COLUMN_NAME<>'" + _strUpdateCtrolColumnCode + "'"))
            {
                string strColCodeCopy = dr["COLUMN_NAME"].ToString();
                if (dtExclude.Select("TYPE='" + strTwoType + "' AND KEY='" + strColCodeCopy + "'").Length == 0)
                {
                    if (sqlTypeNow == SqlType.Update) //修改
                    {
                        if (dtSecCondition.Select("COLUMN_NAME='" + strColCodeCopy + "'").Length == 0)
                        {
                            dtSecCopy.ImportRow(dr); //当条件不存在时才导入
                        }
                    }
                    else
                    {
                        dtSecCopy.ImportRow(dr); //对非修改,不是排除列就导入
                    }
                }
            }

            //并发ID字段处理
            if (drUpdateControlColumn.Length > 0)
            {
                if (sqlTypeNow == SqlType.Update)
                {
                    //对于修改的并发ID字段,修改列和条件都增加
                    dtSecCopy.ImportRow(drUpdateControlColumn[0]);
                    dtSecCondition.ImportRow(drUpdateControlColumn[0]);
                }
                else
                {
                    if (drUpdateControlColumn[0]["选择"].ToString() == "True")
                    {
                        if (dtExclude.Select("TYPE='" + strTwoType + "' AND KEY='" + _strUpdateCtrolColumnCode + "'").Length == 0)
                        {
                            dtSecCopy.ImportRow(drUpdateControlColumn[0]);
                        }
                    }
                    if (drUpdateControlColumn[0]["条件"].ToString() == "True")
                    {
                        dtSecCondition.ImportRow(drUpdateControlColumn[0]);
                    }
                }
            }
            #endregion

            #region 得到条件

            //返回按列ID排序的行数组
            DataRow[] drConditionArr = dtSecCondition.Select("1=1", "COLUMN_ID");
            for (int i = 0; i < drConditionArr.Length; i++)
            {
                //变量声明
                string strColCode       = drConditionArr[i]["COLUMN_NAME"].ToString().Trim().ToUpper();
                string strColType       = drConditionArr[i]["DATA_TYPE"].ToString().Trim().ToUpper();
                string strColFixedValue = drConditionArr[i]["固定值"].ToString().Trim();      //固定值
                string strColComments   = drConditionArr[i]["COMMENTS"].ToString().Trim(); //列说明
                string strColCodeParm   = "#" + strColCode + "#";                          //加上#号的列编码
                string strNowAnd        = strAnd;
                //查询的时间范围
                string strBeginDateParm       = "#BEGIN_" + strColCode + "#";
                string strEndDateParm         = "#END_" + strColCode + "#";
                string strQueryWhereDateRange = "";
                if (_isQueryParm)
                {
                    strColCodeParm   = "@" + strColCode;
                    strBeginDateParm = "@BEGIN_" + strColCode;
                    strEndDateParm   = "@END_" + strColCode;
                }
                //列空注释的处理
                strColComments = DataBaseCommon.GetColumnComment(strColCode, strColComments);
                //对修改和删除,WHERE后面不加1=1
                if (i == 0)
                {
                    strConditionPre = strWhereFirst;
                    if (sqlTypeNow == SqlType.Delete || sqlTypeNow == SqlType.Update)
                    {
                        strNowAnd       = "";
                        strConditionPre = strWhereNoFirst;
                    }
                }
                else
                {
                    strConditionPre = "";
                }
                if (_dbServer.DatabaseType == DataBaseType.SqlServer)
                {
                    //SQL Server的时间范围
                    strQueryWhereDateRange = strNowAnd + strTableAliasAndDot + strColCode + " >='" + strBeginDateParm + "' \n"
                                             + strAnd + strTableAliasAndDot + strColCode + " < '" + strBeginDateParm + "' \r"; //结束日期:注要传入界面结束时间的+1天。目前MDS中用到
                    if (_columnNameCodeCheck && sqlTypeNow == SqlType.Query)                                                   //增加IF
                    {
                        strQueryWhereDateRange = _strPreIf + strNowAnd + strTableAliasAndDot + strColCode + " >='" + strBeginDateParm + "' \n" + _strEndIf
                                                 + _strPreIf + strAnd + strTableAliasAndDot + strColCode + " < '" + strBeginDateParm + "' \r" + _strEndIf; //结束日期:注要传入界面结束时间的+1天。目前MDS中用到
                    }
                    if (_isQueryParm)
                    {
                        strQueryWhereDateRange = strNowAnd + strTableAliasAndDot + strColCode + " >=" + strBeginDateParm + " \n"
                                                 + strAnd + strTableAliasAndDot + strColCode + " < " + strBeginDateParm + " \r"; //结束日期:注要传入界面结束时间的+1天。目前MDS中用到
                    }
                }
                else
                {
                    #region Oracle的时间范围
                    strQueryWhereDateRange = strNowAnd + strTableAliasAndDot + strColCode + " >= TO_DATE('" + strBeginDateParm + "','YYYY-MM-DD') \n"
                                             + strAnd + strTableAliasAndDot + strColCode + " < TO_DATE('" + strEndDateParm + "','YYYY-MM-DD') + 1 \r"; //目前MDS中用到
                    if (_columnNameCodeCheck && sqlTypeNow == SqlType.Query)                                                                           //增加IF
                    {
                        strQueryWhereDateRange = _strPreIf + strNowAnd + strTableAliasAndDot + strColCode + " >= TO_DATE('" + strBeginDateParm + "','YYYY-MM-DD') \n" + _strEndIf
                                                 + _strPreIf + strAnd + strTableAliasAndDot + strColCode + " < TO_DATE('" + strEndDateParm + "','YYYY-MM-DD') + 1 \r" + _strEndIf; //目前MDS中用到
                    }
                    if (_isQueryParm)
                    {
                        strQueryWhereDateRange = strNowAnd + strTableAliasAndDot + strColCode + " >= " + strBeginDateParm + " \n"
                                                 + strAnd + strTableAliasAndDot + strColCode + " < " + strEndDateParm + " \r"; //目前MDS中用到
                    }
                    #endregion
                }



                if (sqlTypeNow == SqlType.Query && (strColType == "DATE" || strColType == "DATETIME" || strColType.Contains("TIMESTAMP"))) //列为日期时间类型
                {
                    #region 查询的日期时间段处理
                    strWhere += strConditionPre + strQueryWhereDateRange; //使用范围查询条件
                    if (!dicHaveAddColumnKey.ContainsKey(strBeginDateParm))
                    {
                        dicHaveAddColumnKey[strBeginDateParm] = strBeginDateParm;
                        dicHaveAddColumnKey[strEndDateParm]   = strEndDateParm;
                        //字典赋值
                        strEndDicSetValue       += DataBaseCommon.GetDicSetValueString(strBeginDateParm, _isQueryParm);
                        strEndDicInRemark       += DataBaseCommon.GetFuncParamComment(strBeginDateParm, strColComments, _isQueryParm);
                        strFileDictionaryRemark += DataBaseCommon.GetFileDictionaryParamComment(strBeginDateParm, strColComments, _isQueryParm);
                        //字典赋值
                        strEndDicSetValue       += DataBaseCommon.GetDicSetValueString(strEndDateParm, _isQueryParm);
                        strEndDicInRemark       += DataBaseCommon.GetFuncParamComment(strEndDateParm, strColComments, _isQueryParm);
                        strFileDictionaryRemark += DataBaseCommon.GetFileDictionaryParamComment(strEndDateParm, strColComments, _isQueryParm);
                        strMDSQueryParm         += "parser.Sql(\"BEGIN_" + strColCode + "\", \"AND " + strTableAliasAndDot + strColCode + " >= @BEGIN_" + strColCode + "\",DbDataType.DateTime);\n";
                        strMDSQueryParm         += "parser.Sql(\"END_" + strColCode + "\", \"AND " + strTableAliasAndDot + strColCode + " < @END_" + strColCode + " + 1\",DbDataType.DateTime);\n";
                    }

                    #endregion
                }
                else
                {
                    if (_isQueryParm)
                    {
                        strWhere += strConditionPre + strNowAnd + DataBaseCommon.MakeConditionColumnComment(strColCode, strColCodeParm, "", _isQueryParm);
                    }
                    else
                    {
                        //MDS中条件不能加注释,所以列注释传空。固定值传:'#列编码#'
                        if (_columnNameCodeCheck && sqlTypeNow == SqlType.Query)
                        {
                            strWhere += strConditionPre + _strPreIf + strNowAnd + DataBaseCommon.MakeConditionColumnComment(strColCode, "'" + strColCodeParm + "'", "", _isQueryParm) + _strEndIf;
                        }
                        else
                        {
                            strWhere += strConditionPre + strNowAnd + DataBaseCommon.MakeConditionColumnComment(strColCode, "'" + strColCodeParm + "'", "", _isQueryParm);
                        }
                    }
                    if (sqlTypeNow != SqlType.Insert)                         //新增没有条件
                    {
                        if (!dicHaveAddColumnKey.ContainsKey(strColCodeParm)) //不存在才增加
                        {
                            strEndDicSetValue += DataBaseCommon.GetDicSetValueString(strColCode, _isQueryParm);
                            if (strColCode == _strUpdateCtrolColumnCode)
                            {
                                strEndDicInRemark += DataBaseCommon.GetFuncParamComment(strColCode, strColComments, true); //并发控制ID
                            }
                            else
                            {
                                strEndDicInRemark += DataBaseCommon.GetFuncParamComment(strColCode, strColComments, _isQueryParm);
                            }
                            strFileDictionaryRemark            += DataBaseCommon.GetFileDictionaryParamComment(strColCode, strColComments, _isQueryParm);
                            dicHaveAddColumnKey[strColCodeParm] = strColCodeParm;
                            if (_isQueryParm)
                            {
                                if (sqlTypeNow == SqlType.Query)
                                {
                                    strMDSQueryParm += "parser.Sql(\"" + strColCode + "\", \"AND " + strTableAliasAndDot + strColCode + " = @" + strColCode + "\");\n";
                                }
                                else
                                {
                                    strMDSInsertUpdateParm += "\"" + strColCode + "\"" + ",";
                                }
                            }
                        }
                    }
                }
            }
            #endregion

            int iTable = 1;                          //表计数器
            foreach (DataRow drTable in dtMain.Rows) //针对表清单循环
            {
                #region 变量声明
                string strDataTableName    = drTable["TABLE_NAME"].ToString().Trim();
                string strDataTableComment = drTable["COMMENTS"].ToString().Trim();
                string strSelect           = "";
                string strInsertColums     = "";
                string strInsertVale       = "";
                string strUpdate           = "";
                string strDelete           = "";
                string strOneSql           = "";
                int    iColumnCount        = dtSecCopy.Rows.Count; //选择的总行数
                int    j = 0;


                #endregion

                #region 生成SQL
                DataRow[] drArr = dtSecCopy.Select("1=1", "COLUMN_ID");
                for (int i = 0; i < drArr.Length; i++)//针对列清单循环:因为只有一个表,所以第二个网格是该表的全部列
                {
                    #region 变量
                    j = i + 1;
                    string strColCode       = drArr[i]["COLUMN_NAME"].ToString().Trim().ToUpper();
                    string strColCodeOld    = drArr[i]["COLUMN_NAME"].ToString().Trim().ToUpper();
                    string strColType       = drArr[i]["DATA_TYPE"].ToString().Trim().ToUpper();
                    string strColFixedValue = drArr[i]["固定值"].ToString().Trim();      //固定值
                    string strColComments   = drArr[i]["COMMENTS"].ToString().Trim(); //列说明
                    string strColValue      = "";                                     //列值
                    string strColCodeParm   = "#" + strColCode + "#";                 //加上#号的列编码
                    string strNowComma      = ",";                                    //当前使用的逗号,最行一列的新增和修改是不用加逗号的
                    #endregion
                    if (_isQueryParm)
                    {
                        strColCodeParm = "@" + strColCode;
                    }
                    #region 默认字段注释处理(针对MDS项目)
                    strColComments = DataBaseCommon.GetColumnComment(strColCode, strColComments);
                    #endregion
                    //表列说明的备注构造
                    strEndTableColumnsRemark += DataBaseCommon.GetDicTableColumnRemarkString(strColCode, strColComments);
                    //优先使用本次写的固定值,其次才是维护中的键值。对修改,非条件列,或虽然是条件,但为UPDATE_CONTROL_ID字段,都查找固定设置值
                    if (sqlTypeNow == SqlType.Insert || sqlTypeNow == SqlType.Update)
                    {
                        #region 新增修改处理
                        if (string.IsNullOrEmpty(strColFixedValue))
                        {
                            #region 没有输入固定值
                            //查询全局默认值配置
                            DataRow[] drKeyArr = dtDefault.Select("TYPE='" + strTwoType + "' AND KEY='" + strColCode + "'");

                            if (dtDefault.Rows.Count > 0 && drKeyArr.Length > 0 && !string.IsNullOrEmpty(drKeyArr[0]["VALUE"].ToString()))
                            {
                                #region 全局有该类型设置,且非空
                                strColValue = drKeyArr[0]["VALUE"].ToString().Trim();
                                string strColValuePara = strColValue.Replace("'", ""); //移除引号
                                if (strColValuePara.StartsWith("#") && strColValuePara.EndsWith("#"))
                                {
                                    #region 固定值为参数时
                                    //查找参数设置
                                    DataRow[] drKeyRemark = dtDefault.Select("TYPE='" + ((int)SqlType.Parameter).ToString() + "' AND KEY='" + strColValuePara + "'");
                                    if (drKeyRemark.Length > 0 && !dicHaveAddColumnKey.ContainsKey(strColValuePara))
                                    {
                                        #region  注释,且字典中没有该键时
                                        //注:strColValuePara已包括了#号
                                        strEndDicSetValue       += DataBaseCommon.GetDicSetValueString(strColValuePara, _isQueryParm);
                                        strEndDicInRemark       += DataBaseCommon.GetFuncParamComment(strColValuePara, drKeyRemark[0]["VALUE"].ToString(), _isQueryParm);
                                        strFileDictionaryRemark += DataBaseCommon.GetFileDictionaryParamComment(strColValuePara, drKeyRemark[0]["VALUE"].ToString(), _isQueryParm);
                                        //列名不用加#号
                                        strEndColumnsRemark                 += DataBaseCommon.GetTableColumnComment(strColCode, strColComments);
                                        strFileTableColumnRemark            += DataBaseCommon.GetFileColumnComment(strColCode, strColComments);
                                        dicHaveAddColumnKey[strColValuePara] = strColValuePara;
                                        if (_isQueryParm)
                                        {
                                            strMDSInsertUpdateParm += "\"" + strColValuePara.Replace("#", "") + "\"" + ",";
                                        }
                                        #endregion
                                    }
                                    else
                                    {
                                        #region 没有注释,或已增加了该键
                                        //列名不用加#号
                                        strEndColumnsRemark      += DataBaseCommon.GetTableColumnComment(strColCode, strColComments);
                                        strFileTableColumnRemark += DataBaseCommon.GetFileColumnComment(strColCode, strColComments);
                                        #endregion
                                    }
                                    #endregion
                                    //参数加上引号
                                    strColValue = "'" + strColValuePara + "'";
                                    if (_isQueryParm)
                                    {
                                        strColValue = "@" + strColValuePara.Replace("#", "");
                                    }
                                }
                                else
                                {
                                    //非参数不加上引号
                                    strColValue = strColValuePara;
                                }
                                #endregion
                            }
                            else //全局默认值设置为空时
                            {
                                #region 全局默认值设置为空时
                                if (!dicHaveAddColumnKey.ContainsKey(strColCodeParm)) //不存在才增加
                                {
                                    strEndDicSetValue += DataBaseCommon.GetDicSetValueString(strColCode, _isQueryParm);
                                    //列名不用加#号
                                    strEndColumnsRemark += DataBaseCommon.GetTableColumnComment(strColCode, strColComments);

                                    if (_dbServer.DatabaseType == DataBaseType.Oracle && drArr[i]["IS_PK"].ToString().Trim() == "1")
                                    {
                                        strEndDicInRemark += DataBaseCommon.GetFuncParamComment(strColCode, strColComments, true);
                                    }
                                    else
                                    {
                                        strEndDicInRemark += DataBaseCommon.GetFuncParamComment(strColCode, strColComments, _isQueryParm);
                                    }
                                    strFileDictionaryRemark            += DataBaseCommon.GetFileDictionaryParamComment(strColCode, strColComments, _isQueryParm);
                                    strFileTableColumnRemark           += DataBaseCommon.GetFileColumnComment(strColCode, strColComments);
                                    dicHaveAddColumnKey[strColCodeParm] = strColCodeParm;
                                    strMDSInsertUpdateParm += "\"" + strColCode + "\"" + ",";
                                }
                                #endregion
                            }
                            #endregion
                        }
                        else //网格输入了固定值
                        {
                            strColValue = strColFixedValue;
                        }
                        #endregion
                    }
                    else if (sqlTypeNow == SqlType.Query)
                    {
                        //增加程序参数中的列说明、开发指导书的表列说明
                        strEndColumnsRemark      += DataBaseCommon.GetTableColumnComment(strColCode, strColComments);
                        strFileTableColumnRemark += DataBaseCommon.GetFileColumnComment(strColCode, strColComments);
                    }
                    //生成SQL
                    if (sqlTypeNow == SqlType.Insert)
                    {
                        #region 新增
                        strWhere = "";
                        if (j == 1) //第一行
                        {
                            if (j == iColumnCount)
                            {
                                strNowComma      = "";
                                strInsertColums += "INSERT INTO " + DataBaseCommon.MakeTableComment(strDataTableName + DataBaseCommon.AddRightBand(strTableAlias), strDataTableComment)
                                                   + "(\n" + "\t" + strTableAliasAndDot + strColCode + strNowComma + "\n)\n";
                                strInsertVale += "VALUES\n(\n" + DataBaseCommon.MakeAddValueColumnComment(strNowComma, strColCode, strColValue, strColComments, strColType, _isQueryParm) + "\n)\n";;
                            }
                            else
                            {
                                strInsertColums += "INSERT INTO " + DataBaseCommon.MakeTableComment(strDataTableName + DataBaseCommon.AddRightBand(strTableAlias), strDataTableComment)
                                                   + "(\n" + "\t" + strTableAliasAndDot + strColCode + strNowComma + "\n";
                                strInsertVale += "VALUES\n(\n" + DataBaseCommon.MakeAddValueColumnComment(strNowComma, strColCode, strColValue, strColComments, strColType, _isQueryParm);
                            }
                        }
                        else if (j != iColumnCount) //非首行,并且非尾行
                        {
                            strInsertColums += "\t" + strTableAliasAndDot + strColCode + _strComma + "\n";;
                            strInsertVale   += DataBaseCommon.MakeAddValueColumnComment(strNowComma, strColCode, strColValue, strColComments, strColType, _isQueryParm);
                        }
                        else //最后一行
                        {
                            strNowComma      = "";
                            strInsertColums += "\t" + strTableAliasAndDot + strColCode + "\n)\n";
                            //最后一行不用加逗号
                            strInsertVale += DataBaseCommon.MakeAddValueColumnComment(strNowComma, strColCode, strColValue, strColComments, strColType, _isQueryParm) + ")\n";
                        }
                        strOneSql = strInsertColums + strInsertVale;
                        #endregion
                    }
                    else if (sqlTypeNow == SqlType.Update)
                    {
                        #region 修改
                        if (j == 1) //第一行
                        {
                            if (j == iColumnCount)
                            {
                                strNowComma = "";
                            }
                            strUpdate += "UPDATE " + DataBaseCommon.MakeTableComment(strDataTableName + DataBaseCommon.AddRightBand(strTableAlias), strDataTableComment)
                                         + "SET " + DataBaseCommon.MakeUpdateColumnComment(strNowComma, strColCode, strColValue, strColComments, strColType, _isQueryParm);
                        }
                        else if (j != iColumnCount) //中间行
                        {
                            strUpdate += DataBaseCommon.MakeUpdateColumnComment(strNowComma, strColCode, strColValue, strColComments, strColType, _isQueryParm);
                        }
                        else //最后一行
                        {
                            strNowComma = "";
                            strUpdate  += DataBaseCommon.MakeUpdateColumnComment(strNowComma, strColCode, strColValue, strColComments, strColType, _isQueryParm);
                        }
                        strOneSql = strUpdate;
                        #endregion }
                    }
                    else if (sqlTypeNow == SqlType.Query)
                    {
                        #region 查询
                        if (j == 1) //第一行
                        {
                            if (j == iColumnCount)
                            {
                                strNowComma = "";
                                strSelect  += "SELECT " + DataBaseCommon.MakeQueryColumnComment(strNowComma, strTableAliasAndDot + strColCode, strColComments) + "FROM "
                                              + DataBaseCommon.MakeTableComment(strDataTableName + DataBaseCommon.AddRightBand(strTableAlias), strDataTableComment);
                            }
                            else
                            {
                                strSelect += "SELECT " + DataBaseCommon.MakeQueryColumnComment(strNowComma, strTableAliasAndDot + strColCode, strColComments);
                            }
                        }
                        else if (j != iColumnCount) //中间行
                        {
                            strSelect += DataBaseCommon.MakeQueryColumnComment(strNowComma, strTableAliasAndDot + strColCode, strColComments);
                        }
                        else //最后一行
                        {
                            strNowComma = "";
                            strSelect  += DataBaseCommon.MakeQueryColumnComment(strNowComma, strTableAliasAndDot + strColCode, strColComments) + "FROM "
                                          + DataBaseCommon.MakeTableComment(strDataTableName + DataBaseCommon.AddRightBand(strTableAlias), strDataTableComment);
                        }
                        strOneSql = strSelect;
                        #endregion
                    }
                }
                if (sqlTypeNow == SqlType.Delete)
                {
                    #region  除
                    strDelete += "DELETE FROM " + strDataTableName + DataBaseCommon.AddRightBand(strTableAlias) + "\n";
                    strOneSql  = strDelete;
                    #endregion
                }
                #endregion

                if (_isQueryParm)
                {
                    if (!string.IsNullOrEmpty(strMDSInsertUpdateParm))
                    {
                        if (sqlTypeNow == SqlType.Update)
                        {
                        }
                        strMDSInsertUpdateParm = strMDSInsertUpdateParm.Substring(0, strMDSInsertUpdateParm.Length - 1);
                    }
                    if (sqlTypeNow == SqlType.Query)
                    {
                        strOneSql = "SqlQueryParser parser = new SqlQueryParser();\nparser.Sql(@\"" + strOneSql + " WHERE 1=1 \");\n" + strMDSQueryParm
                                    + "DataTable dtReturn = parser.Query(dicParam);\nreturn dtReturn;\n";
                    }
                    else
                    {
                        strOneSql = "int iEff = SqlQueryParser.Update(\n@\"" + strOneSql + strWhere + "\",dicParam,tran," + strMDSInsertUpdateParm + ");\n"
                                    + "if (iEff == 0)\n"
                                    + "{\n"
                                    + "    throw new ConcurrencyException();\n"
                                    + "}\n"
                                    + "return ExecutionResult.Success();\n";
                    }
                }
                else
                {
                    strOneSql += strWhere;
                }
                string strFuncRemark = "";
                if (sqlTypeNow == SqlType.Query)
                {
                    strFuncRemark = "\r/*DataAcce方法*/\r" + DataBaseCommon.GetFuncParmQueryPreString(true, _isQueryParm) + strEndDicInRemark
                                    + DataBaseCommon.GetFuncParmQueryMiddleString(_isQueryParm) + strEndColumnsRemark + DataBaseCommon.GetFuncParmQueryEndString(true, _isQueryParm, strOneSql)
                                    + "\r/*Bussiness方法*/\r" + DataBaseCommon.GetFuncParmQueryPreString(false, _isQueryParm) + strEndDicInRemark
                                    + DataBaseCommon.GetFuncParmQueryMiddleString(_isQueryParm) + strEndColumnsRemark + DataBaseCommon.GetFuncParmQueryEndString(false, _isQueryParm, strOneSql);
                }
                else
                {
                    strFuncRemark = "\r/*DataAcce方法*/\r" + DataBaseCommon.GetFuncParmSavePreString(true, _isQueryParm) + strEndDicInRemark
                                    + DataBaseCommon.GetFuncParmSaveEndString(true, _isQueryParm, strOneSql)
                                    + "\r/*Bussiness方法*/\r" + DataBaseCommon.GetFuncParmSavePreString(false, _isQueryParm) + strEndDicInRemark
                                    + DataBaseCommon.GetFuncParmSaveEndString(false, _isQueryParm, strOneSql);
                }
                strEndTableColumnsRemark += "/// </param>";
                sbAllSql.Append(strOneSql + strFuncRemark
                                + "\r/*开发指导书字典注释*/\r" + strFileDictionaryRemark
                                + "\r/*开发指导书表的列注释*/\r" + strFileTableColumnRemark
                                + "\r/*参数赋值*/\r" + strEndDicSetValue
                                + "\r/*表列注释*/\r" + strEndTableColumnsRemark);
                iTable++;
            }
            rtbResult.Clear();
            rtbResult.AppendText(sbAllSql.ToString() + "\n");
            Clipboard.SetData(DataFormats.UnicodeText, sbAllSql.ToString());
            tabControl1.SelectedTab = tpAutoSQL;
            //生成SQL成功后提示
            MsgHelper.ShowInfo(_strAutoSqlSuccess);
            return;

            #endregion
        }