private static string CreateDataGrid(int action, List <SqlColumnInfo> colList, string table_name)
        {
            // singleselect=""true""
            string template = @"
        <table id=""tbcontent"" class=""table table-striped"">
            <thead>
                <tr>{0}
                </tr>
            </thead>
            <tbody>
            </tbody>
        </table>
        <div id=""msgPager""></div>
";

            StringBuilder tbodyContent = new StringBuilder();

            tbodyContent.Append(@"
                    <th><input type=""checkbox"" id=""chkAll"" onclick=""checkAll();"" /></th>");
            if ((action & (int)action_type.query_list) == (int)action_type.query_list)
            {
                var queryList = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                foreach (var item in queryList)
                {
                    tbodyContent.AppendFormat(@"
                    <th>{0}</th>", item.Comment);
                }

                return(string.Format(template, tbodyContent.ToString()));
            }
            else
            {
                return(string.Empty);
            }
        }
Ejemplo n.º 2
0
        private static string CreateEditData(int action, List <SqlColumnInfo> colList, string table_name, string model_name, string dal_name)
        {
            StringBuilder editContent = new StringBuilder();
            StringBuilder createModel = new StringBuilder();

            editContent.AppendFormat("\t\t\tstring {0} = HttpUtility.UrlDecode(Request[\"txtEdit{0}\"]);\r\n", colList.ToKeyId());
            createModel.AppendFormat("\t\t\tmodel.{0} = {1};\r\n", colList.ToKeyId(), ExtendMethod.ToStringToType(colList.ToKeyId(), colList.ToKeyIdDbType()));
            if ((action & (int)action_type.edit) == (int)action_type.edit)
            {
                var editList = Cache_VMData.GetVMList(table_name, VMType.Edit, colList.ToNotMainIdList());
                foreach (var item in editList)
                {
                    if (item.DbType.ToLower() == "datetime" ||
                        item.DbType.ToLower() == "date" ||
                        item.DbType.ToLower() == "int" ||
                        item.DbType.ToLower() == "tinyint")
                    {
                        editContent.AppendFormat("\t\t\tstring {0}Str = HttpUtility.UrlDecode(Request[\"txtEdit{0}\"]);\r\n", item.Name);
                        if (item.DbType.ToLower() == "datetime" || item.DbType.ToLower() == "date")
                        {
                            editContent.AppendFormat("\t\t\tDateTime {0} = DateTime.MinValue;\r\n", item.Name);
                            editContent.AppendFormat("\t\t\tDateTime.TryParse({0}Str, out {0});\r\n", item.Name);
                        }
                        else
                        {
                            editContent.AppendFormat("\t\t\tint {0} = 0;\r\n", item.Name);
                            editContent.AppendFormat("\t\t\tint.TryParse({0}Str, out {0});\r\n", item.Name);
                        }

                        createModel.AppendFormat("\t\t\tmodel.{0} = {1};\r\n", item.Name, ExtendMethod.ToStringToType(item.Name, item.DbType));
                    }
                    else
                    {
                        editContent.AppendFormat("\t\t\tstring {0} = HttpUtility.UrlDecode(Request[\"txtEdit{1}\"]);\r\n", item.Name, item.Name);
                        createModel.AppendFormat("\t\t\tmodel.{0} = {1};\r\n", item.Name, ExtendMethod.ToStringToType(item.Name, item.DbType));
                    }
                }

                string template = @"
        private void EditData()
        {{
{0}
            {1} model = new {1}();
{2}
            {3} dal = new {3}();
            dal.Update{4}(model);

            Response.Write(""0"");
        }}
";

                return(string.Format(template, editContent.ToString(), model_name, createModel.ToString(), dal_name, table_name));
            }
            else
            {
                return(string.Empty);
            }
        }
        public static string CreateBatAddMethod(int action, string table_name, List <SqlColumnInfo> colList, string model_name, string db_name)
        {
            if ((action & (int)action_type.bat_add) == (int)action_type.bat_add)
            {
                StringBuilder addContent       = new StringBuilder();
                StringBuilder valueContent     = new StringBuilder(") values (");
                StringBuilder addparamsContent = new StringBuilder("List<SqlParameter> listParams = new List<SqlParameter>();\r\n");
                addContent.AppendFormat("string insertSql = \"insert into {0}(", table_name);
                int index   = 0;
                var addList = Cache_VMData.GetVMList(table_name, VMType.Add, colList.ToNotMainIdList());
                foreach (var item in addList)
                {
                    if (index == 0)
                    {
                        addContent.Append(item.Name);
                        valueContent.Append("@" + item.Name);
                    }
                    else
                    {
                        addContent.Append(" ," + item.Name);
                        valueContent.Append(" ,@" + item.Name);
                    }

                    addparamsContent.AppendFormat("\t\t\tlistParams.Add(new SqlParameter(\"@{0}\", {1}) {{ Value = model.{0} }});\r\n", item.Name, item.DbType.ToMsSqlDbType());

                    index++;
                }

                addContent.Append(valueContent.ToString() + ")\";");
                string template = @"
        public void Add{4}_list(List<{0}> list)
        {{
			{1}
            using (SqlConnection sqlcn = ConnectionFactory.{3})
            {{
                sqlcn.Open();
                foreach(var model in list)
                {{
                    {2}
                    SqlHelper.ExecuteNonQuery(sqlcn, CommandType.Text, insertSql, listParams.ToArray()) > 0;
                }}
            }}
        }}
";

                return(string.Format(template,
                                     model_name,
                                     addContent.ToString(),
                                     addparamsContent.ToString(),
                                     db_name,
                                     table_name));
            }
            else
            {
                return(string.Empty);
            }
        }
        public static string CreateEditMethod(int action, string table_name, List <SqlColumnInfo> colList, string model_name, string db_name)
        {
            if ((action & (int)action_type.edit) == (int)action_type.edit)
            {
                StringBuilder updateContent = new StringBuilder("string updateSql = \"update ");
                updateContent.AppendFormat(" {0} set ", table_name);
                StringBuilder updateParamsContent = new StringBuilder("List<MySqlParameter> listParams = new List<MySqlParameter>();\r\n");

                int index    = 0;
                var editList = Cache_VMData.GetVMList(table_name, VMType.Edit, colList.ToNotMainIdList());
                foreach (var item in editList)
                {
                    if (index == 0)
                    {
                        updateContent.AppendFormat("{0}=@{0}", item.Name);
                    }
                    else
                    {
                        updateContent.AppendFormat(",{0}=@{0}", item.Name);
                    }

                    updateParamsContent.AppendFormat("\t\t\tlistParams.Add(new MySqlParameter(\"@{0}\", {1}) {{ Value = model.{0} }});\r\n", item.Name, item.DbType.ToMySqlDbType());
                    index++;
                }

                updateContent.Append(" where ");
                updateContent.AppendFormat(" {0}=@{0} \";", colList.ToKeyId());
                updateParamsContent.AppendFormat("\t\t\tlistParams.Add(new MySqlParameter(\"@{0}\", {1}) {{ Value = model.{2} }});\r\n", colList.ToKeyId(), colList.ToKeyIdDbType().ToMySqlDbType(), colList.ToKeyId());

                string template = @"
        public bool Update{4}({0} model)
        {{
			{1}
            {2}
            using (MySqlConnection sqlcn = ConnectionFactory.{3})
            {{
                return MySqlHelper2.ExecuteNonQuery(sqlcn, CommandType.Text, updateSql, listParams.ToArray()) > 0;
            }}
        }}
";
                return(string.Format(template,
                                     model_name,
                                     updateContent.ToString(),
                                     updateParamsContent.ToString(),
                                     db_name,
                                     table_name));
            }
            else
            {
                return(string.Empty);
            }
        }
        public string CreateDeleteMethod()
        {
            var deleteCol = Cache_VMData.GetDeleteColumnNameAndValue(table_name, list);

            if (deleteCol == null)
            {
                var keyInfo = list.Find(p => p.IsMainKey);

                // 物理删除
                string updateContent = string.Format(@"string deleteSql = ""delete from {0} where {1}=@{1} limit 1;"";",
                                                     table_name, (keyInfo == null ? "主键" : keyInfo.Name));

                string template = @"
        public bool Update{3}_delete({0} model)
        {{
			{1}
            using (IDbConnection sqlcn = ConnectionFactory.{2})
            {{
                return  sqlcn.Execute(deleteSql, model) > 0;
            }}
        }}
";
                return(string.Format(template,
                                     model_name,
                                     updateContent,
                                     db_name,
                                     table_name));
            }
            else
            {
                var    keyInfo       = list.Find(p => p.IsMainKey);
                string updateContent = string.Format(@"string updateSql = ""update {0} set {1}={2} where {3}=@{3} limit 1;""",
                                                     table_name, deleteCol.Name, deleteCol.DefaultValue,
                                                     (keyInfo == null ? "主键" : keyInfo.Name));

                string template = @"
        public bool Update{3}_delete({0} model)
        {{
			{1}
            using (IDbConnection sqlcn = ConnectionFactory.{2})
            {{
                return  sqlcn.Execute(updateSql, model) > 0;
            }}
        }}
";
                return(string.Format(template,
                                     model_name,
                                     updateContent,
                                     db_name,
                                     table_name));
            }
        }
Ejemplo n.º 6
0
        private void btnSaveAll_Click(object sender, EventArgs e)
        {
            List <VMDataInfo> list = new List <VMDataInfo>();
            int index = 0;

            foreach (TabPage tb in this.tabControl1.TabPages)
            {
                if (index == 0)
                {
                    var commonVM = new VMDataInfo()
                    {
                        db_name = Cache_Next.GetDbName(), type = 0
                    };
                    commonVM.add_list.AddRange(this.txtAddExcept.Text.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries));
                    commonVM.edit_list.AddRange(this.txtEditExcept.Text.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries));
                    commonVM.query_list.AddRange(this.txtQueryExcept.Text.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries));

                    commonVM.extendInfo       = new VMDataExtendInfo();
                    commonVM.extendInfo.type  = 0;
                    commonVM.extendInfo.v1    = this.rbtnDelete1.Checked ? 0 : 1;
                    commonVM.extendInfo.name  = this.txtDeleteColName.Text;
                    commonVM.extendInfo.value = this.txtDeleteColValue.Text;

                    list.Add(commonVM);
                }
                else
                {
                    var tableVM = new VMDataInfo()
                    {
                        db_name = Cache_Next.GetDbName(), type = 1, table_name = tb.Text
                    };
                    tableVM.add_list.AddRange((tb.Controls[1] as TextBox).Text.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries));
                    tableVM.edit_list.AddRange((tb.Controls[2] as TextBox).Text.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries));
                    tableVM.query_list.AddRange((tb.Controls[3] as TextBox).Text.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries));
                    if ((tb.Controls[4] as CheckBox).Checked)
                    {
                        tableVM.add_check_list.AddRange((tb.Controls[5] as TextBox).Text.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries));
                    }

                    list.Add(tableVM);
                }

                index++;
            }

            Cache_VMData.SaveData(list);
        }
        public static string CreateEditMethod(int action, string table_name, List <SqlColumnInfo> colList, string model_name, string db_name)
        {
            if ((action & (int)action_type.edit) == (int)action_type.edit)
            {
                StringBuilder updateContent = new StringBuilder("string updateSql = \"update ");
                updateContent.AppendFormat(" {0} set ", table_name);
                int index    = 0;
                var editList = Cache_VMData.GetVMList(table_name, VMType.Edit, colList.ToNotMainIdList());
                foreach (var item in colList.ToNotMainIdList())
                {
                    if (index == 0)
                    {
                        updateContent.AppendFormat("{0}=@{0}", item.Name);
                    }
                    else
                    {
                        updateContent.AppendFormat(",{0}=@{0}", item.Name);
                    }

                    index++;
                }

                updateContent.Append(" where ");
                updateContent.AppendFormat(" {0}=@{0} \";", colList.ToKeyId());

                string template = @"
        public bool Update{3}({0} model)
        {{
			{1}
            using (IDbConnection sqlcn = ConnectionFactory.{2})
            {{
                return sqlcn.Execute(updateSql, model) > 0;
            }}
        }}
";
                return(string.Format(template,
                                     table_name,
                                     updateContent.ToString(),
                                     db_name,
                                     table_name));
            }
            else
            {
                return(string.Empty);
            }
        }
Ejemplo n.º 8
0
        private void LoadSetting()
        {
            var list  = Cache_VMData.LoadData();
            int index = 0;

            foreach (TabPage tb in this.tabControl1.TabPages)
            {
                if (index == 0)
                {
                    var model = list.Find(p => p.db_name == Cache_Next.GetDbName() && p.type == 0);
                    if (model != null)
                    {
                        this.txtAddExcept.Text   = string.Join("\r\n", model.add_list.ToArray());
                        this.txtEditExcept.Text  = string.Join("\r\n", model.edit_list.ToArray());
                        this.txtQueryExcept.Text = string.Join("\r\n", model.query_list.ToArray());
                        if (model.extendInfo != null)
                        {
                            if (model.extendInfo.type == 0)
                            {
                                this.rbtnDelete2.Checked    = model.extendInfo.v1 == 1;
                                this.txtDeleteColName.Text  = model.extendInfo.name ?? "";
                                this.txtDeleteColValue.Text = model.extendInfo.value ?? "";
                            }
                        }
                    }
                }
                else
                {
                    var model = list.Find(p => p.db_name == Cache_Next.GetDbName() && p.type == 1 && p.table_name == tb.Text);
                    if (model != null)
                    {
                        (tb.Controls[1] as TextBox).Text = string.Join("\r\n", model.add_list.ToArray());
                        (tb.Controls[2] as TextBox).Text = string.Join("\r\n", model.edit_list.ToArray());
                        (tb.Controls[3] as TextBox).Text = string.Join("\r\n", model.query_list.ToArray());
                        if (model.add_check_list.Count > 0)
                        {
                            (tb.Controls[5] as TextBox).Text     = string.Join("\r\n", model.add_check_list.ToArray());
                            (tb.Controls[4] as CheckBox).Checked = true;
                        }
                    }
                }

                index++;
            }
        }
        private static string CreateSearchContent(int action, List <SqlColumnInfo> colList, string table_name)
        {
            string        template      = @"
    <div class=""demo-info"" style=""margin-bottom: 10px"">
        <div class=""demo-tip icon-tip"">
            &nbsp;</div>
        <div>{0}</div>
    </div>
";
            StringBuilder searchContent = new StringBuilder();

            if ((action & (int)action_type.query_list) == (int)action_type.query_list)
            {
                var queryList = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                foreach (var item in queryList)
                {
                    searchContent.AppendFormat("&nbsp;&nbsp;<label for=\"txtSearch{0}\">{1}:</label><input type=\"text\" id=\"txtSearch{0}\" />", item.Name, item.Name);
                }

                searchContent.Append("&nbsp;&nbsp;<input type=\"button\" id=\"btnsearch\" value=\"查询\" />");
            }

            return(string.Format(template, searchContent.ToString()));
        }
Ejemplo n.º 10
0
        private static string CreateEditData(int action, List <SqlColumnInfo> colList, string table_name, string dal_name)
        {
            StringBuilder editContent    = new StringBuilder();
            StringBuilder createModel    = new StringBuilder();
            StringBuilder editStrContent = new StringBuilder();

            if ((action & (int)action_type.edit) == (int)action_type.edit)
            {
                editContent.AppendFormat("\t\t\tstring {0} = HttpUtility.UrlDecode(txtEdit{1});\r\n", colList.ToKeyId(), colList.ToKeyId());
                createModel.AppendFormat("\t\t\tmodel.{0} = {1};\r\n", colList.ToKeyId(), ExtendMethod.ToStringToType(colList.ToKeyId(), colList.ToKeyIdDbType()));
                editStrContent.AppendFormat("string txtEdit{0},", colList.ToKeyId());
                var editList = Cache_VMData.GetVMList(table_name, VMType.Edit, colList.ToNotMainIdList());
                foreach (var item in editList)
                {
                    if (item.DbType.ToLower() == "datetime" ||
                        item.DbType.ToLower() == "date" ||
                        item.DbType.ToLower() == "int" ||
                        item.DbType.ToLower() == "bigint" ||
                        item.DbType.ToLower() == "tinyint")
                    {
                        editContent.AppendFormat("\t\t\tstring {0}Str = HttpUtility.UrlDecode(txtEdit{0});\r\n", item.Name);
                        if (item.DbType.ToLower() == "datetime" || item.DbType.ToLower() == "date")
                        {
                            editContent.AppendFormat("\t\t\tDateTime {0} = DateTime.MinValue;\r\n", item.Name);
                            editContent.AppendFormat("\t\t\tDateTime.TryParse({0}Str, out {0});\r\n", item.Name);
                        }
                        else
                        {
                            editContent.AppendFormat("\t\t\tint {0} = 0;;\r\n", item.Name);
                            editContent.AppendFormat("\t\t\tint.TryParse({0}Str, out {0});\r\n", item.Name);
                        }

                        createModel.AppendFormat("\t\t\tmodel.{0} = {1};\r\n", item.Name, ExtendMethod.ToStringToType_ExceptIntDate(item.Name, item.DbType));
                    }
                    else
                    {
                        editContent.AppendFormat("\t\t\tstring {0} = HttpUtility.UrlDecode(txtEdit{1});\r\n", item.Name, item.Name);
                        createModel.AppendFormat("\t\t\tmodel.{0} = {1};\r\n", item.Name, ExtendMethod.ToStringToType_ExceptIntDate(item.Name, item.DbType));
                    }

                    editStrContent.AppendFormat("string txtEdit{0},", item.Name);
                }

                if (editStrContent.Length > 0)
                {
                    editStrContent.Remove(editStrContent.Length - 1, 1);
                }

                string template = @"
        [HttpPost]
        public ActionResult edit({0})
        {{
{1}
            {2} model = new {2}();
{3}
            {4} dal = new {4}();
            dal.Update{5}(model);

            return new ContentResult() {{ Content = ""0"" }};
        }}
";

                return(string.Format(template,
                                     editStrContent.ToString(),
                                     editContent.ToString(),
                                     table_name,
                                     createModel.ToString(),
                                     dal_name,
                                     table_name));
            }
            else
            {
                return(string.Empty);
            }
        }
        private static string CreateSearchContent(int action, List <SqlColumnInfo> colList, string table_name)
        {
            StringBuilder searchContent = new StringBuilder();
            int           index         = 0;

            if ((action & (int)action_type.query_list) == (int)action_type.query_list)
            {
                var queryList = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                foreach (var item in queryList)
                {
                    if (index % 3 == 0)
                    {
                        if (index == 0)
                        {
                            searchContent.Append(@"
        <div class=""row form-group"">");
                        }
                        else
                        {
                            searchContent.Append(@"
        </div>
        <div class=""row form-group"">");
                        }
                    }

                    if (item.DbType.ToLower() == "datetime")
                    {
                        searchContent.AppendFormat(@"
            <div class=""col-md-4"">
                {1}:<input size=""10"" type=""text"" value="""" id=""txtSearch{0}"" placeholder=""选择指定日期"" />
                <script type=""text/javascript"">
                    $('#txtSearch{0}').datetimepicker({{
                        // minView: ""month"", //选择日期后,不会再跳转去选择时分秒 
                        format: ""yyyy-mm-dd hh:ii:ss"", //选择日期后,文本框显示的日期格式 
                        language: 'zh-CN', //汉化 
                        autoclose: true //选择日期后自动关闭 
                    }});
                </script>
            </div>", item.Name, item.Comment);
                    }
                    else if (item.DbType.ToLower() == "date")
                    {
                        searchContent.AppendFormat(@"
            <div class=""col-md-4"">
                {1}:<input size=""10"" type=""text"" value="""" id=""txtSearch{0}"" placeholder=""选择指定日期"" />
                <script type=""text/javascript"">
                    $('#txtSearch{0}').datetimepicker({{
                        minView: ""month"", //选择日期后,不会再跳转去选择时分秒 
                        format: ""yyyy-mm-dd"", //选择日期后,文本框显示的日期格式 
                        language: 'zh-CN', //汉化 
                        autoclose: true //选择日期后自动关闭 
                    }}).on('changeDate', function (ev) {{
                        loadMsg(1, pageSize);
                    }});
                </script>
            </div>", item.Name, item.Comment);
                    }
                    else
                    {
                        searchContent.AppendFormat(@"
            <div class=""col-md-4"">
                <label for=""txtSearch{0}"">{1}:</label><input type=""text"" id=""txtSearch{0}"" />
            </div>", item.Name, item.Comment);
                    }

                    index++;
                }

                if (index > 0)
                {
                    if (index % 3 == 1)
                    {
                        searchContent.Append(@"
            <div class=""col-md-8""></div>
        </div>");
                    }
                    else if (index % 3 == 2)
                    {
                        searchContent.Append(@"
            <div class=""col-md-4""></div>
        </div>");
                    }
                    else
                    {
                        searchContent.Append(@"
        </div>");
                    }
                }

                if (searchContent.ToString() != string.Empty)
                {
                    // 非空。添加查询按钮
                    searchContent.Append(@"
        <div class=""row form-group"">
            <div class=""col-md-4""><input type=""button"" id=""btnsearch"" value=""查询"" /></div>
            <div class=""col-md-8""></div>
        </div>");
                }

                return(searchContent.ToString());
            }
            else
            {
                return(string.Empty);
            }
        }
        private static string CreateJsLoad(int action, List <SqlColumnInfo> colList, string table_name)
        {
            StringBuilder jsContent = new StringBuilder();
            string        template  = @"

        <script type=""text/javascript"">
            var hpageSize = 13;
            var hpage = 1;
            $(document).ready(function () {{
                loadData(hpage, hpageSize);
                
                if (($(""#btnsearch"")!=null && $(""#btnsearch"")!=undefined)){{
                    $(""#btnsearch"").click(function () {{ return loadData(hpage, hpageSize); }});
                }}
            }});

            function loadData(page, pageSize) {{
                if (page == undefined) {{
                    page = hpage;
                }}

                if (pageSize == undefined) {{
                    pageSize = hpageSize;
                }}

                hpage = page;
                hpageSize = pageSize;
                $(""#tbcontent tbody"").empty();
                $(""#tbcontent tbody"").append(""<tr><td colspan='{0}'>内容加载中...</td></tr>"");
                {1}
                {2}
                var postData = ""page="" + page + ""&pageSize="" + pageSize + pageData;
                $.ajax({{
                    type: ""POST"",
                    url: ""{3}.aspx?type=loaddata"",
                    data: postData.replace(""+"",""%2b""),
                    success: function (text) {{
                        var data = eval(""("" + text + "")"");
                        var content = """";
                        for (var index in data.Data) {{
                            var model = data.Data[index];
                            content += ""<tr>"";
                            {4}
                            content += ""</tr>"";
                        }}

                        $(""#tbcontent tbody"").empty();
                        $(""#tbcontent tbody"").append(content);

                        var selectSize13 = """";
                        var selectSize50 = """";
                        var selectSize100 = """";
                        var selectSize500 = """";
                        var selectSize1000 = """";
                        if (hpageSize == 13) {{
                            selectSize13 = "" selected=\""selected\"" "";
                        }} else if (hpageSize == 50) {{
                            selectSize50 = "" selected=\""selected\"" "";
                        }} else if (hpageSize == 100) {{
                            selectSize100 = "" selected=\""selected\"" "";
                        }} else if (hpageSize == 500) {{
                            selectSize500 = "" selected=\""selected\"" "";
                        }} else if (hpageSize == 1000) {{
                            selectSize1000 = "" selected=\""selected\"" "";
                        }}

                        var pageSizeSelect = ""<select class=\""pull-left\"" style=\""display:inline; height:34px; margin:20px;\"" id=\""div_pagesize\"" onchange=\""javascript:changesize();\""><option "" + selectSize13 + "" value=\""13\"">13</option><option "" + selectSize50 + "" value=\""50\"">50</option><option "" + selectSize100 + "" value=\""100\"">100</option><option "" + selectSize500 + "" value=\""500\"">500</option><option "" + selectSize1000 + "" value=\""1000\"">1000</option></select>"";

                        // 构造页码
                        var pageContent = pageSizeSelect + ""<ul class=\""pagination\""><li><a href=\""javascript:loadData(1,"" + pageSize + "");\"">&laquo;</a></li>"";
                        var startI = 1;
                        var endI = 1;
                        if (data.PageCount > 5) {{
                            if ((page - 2) >= 1 && (page + 2) <= data.PageCount) {{
                                startI = page - 2;
                                endI = page + 2;
                            }}
                            else if ((page - 2) < 1) {{
                                startI = 1;
                                endI = 5;
                            }}
                            else {{
                                startI = (data.PageCount - 4);
                                endI = data.PageCount;
                            }}
                        }} else {{
                            startI = 1;
                            endI = data.PageCount;
                        }}

                        for (var i = startI; i <= endI; i++) {{
                            if (page == i) {{
                                pageContent += ""<li class=\""active\""><a href=\""javascript:void();\"">"" + i + ""</a></li>"";
                            }}
                            else {{
                                pageContent += ""<li><a href=\""javascript:loadData("" + i + "","" + pageSize + "");\"">"" + i + ""</a></li>"";
                            }}
                        }}

                        pageContent += ""<li><a href=\""javascript:loadData("" + data.PageCount + "","" + pageSize + "");\"">&raquo;</a></li></ul>"";
                        $(""#msgPager"").empty();
                        $(""#msgPager"").append(pageContent);
                    }}
                }});
            }}

            function changesize() {{
                var size = $(""#div_pagesize"").val();
                hpageSize = size;
                loadData(hpage, hpageSize);
            }}
        </script>
";

            int           index           = 0;
            StringBuilder coditionContent = new StringBuilder();
            StringBuilder pagePost        = new StringBuilder();

            if ((action & (int)action_type.query_list) == (int)action_type.query_list)
            {
                var queryList = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                foreach (var item in queryList)
                {
                    // 找到一个
                    coditionContent.AppendFormat(@"
                var txtSearch{0} = $(""#txtSearch{0}"").val();", item.Name);

                    if (index == 0)
                    {
                        pagePost.AppendFormat("var pageData = \"&txtSearch{0}=\" + txtSearch{0}", item.Name);
                    }
                    else
                    {
                        pagePost.AppendFormat("+ \"&txtSearch{0}=\" + txtSearch{0}", item.Name);
                    }

                    index++;
                }

                // 用于编辑使用扩展属性
                StringBuilder tagContent = new StringBuilder();
                tagContent.Append(@"var attr = """);
                index = 0;
                foreach (var item in queryList)
                {
                    if (index == 0)
                    {
                        tagContent.AppendFormat(@" tag_{0}='"" + model.{0} + ""'"" ", item.Name);
                    }
                    else
                    {
                        tagContent.AppendFormat(@" + "" tag_{0}='"" + model.{0} + ""'"" ", item.Name);
                    }

                    index++;
                }

                if (index == 0)
                {
                    tagContent.Append(@""";");
                }
                else
                {
                    tagContent.Append(";");
                }

                StringBuilder showContent = new StringBuilder();
                showContent.AppendFormat(@"
                            {1}
                            content += ""<td><input type=\""checkbox\"" id=\""chk"" + model.{0} + ""\"" value=\"""" + model.{0} + ""\"" "" + attr + "" /></td>"";", colList.ToKeyId(), tagContent.ToString());
                foreach (var item in colList.ToNotMainIdList())
                {
                    showContent.AppendFormat(@"
                            content += ""<td>"" + model.{0} + ""</td>"";", item.Name);
                }

                int colspanCount = colList.ToNotMainIdList().Count;
                pagePost.Append(";");
                if (colList.ToNotMainIdList().Count == 0)
                {
                    pagePost.Append("var pageData = \"\";\r\n");
                }

                jsContent.AppendFormat(template,
                                       colspanCount,
                                       coditionContent,
                                       pagePost,
                                       table_name,
                                       showContent.ToString());

                return(jsContent.ToString());
            }
            else
            {
                return(string.Empty);
            }
        }
        public string CreateAddMethod()
        {
            StringBuilder keyContent   = new StringBuilder();
            StringBuilder valueContent = new StringBuilder();
            int           index        = 0;

            foreach (var item in list.ToNotMainIdList())
            {
                if (index == 0)
                {
                    keyContent.Append(item.Name);
                    valueContent.Append("@" + item.Name);
                }
                else
                {
                    keyContent.Append(" ," + item.Name);
                    valueContent.Append(" ,@" + item.Name);
                }

                index++;
            }

            string addContent = string.Format(@"string insertSql = ""insert into {0} ({1}) values ({2});"";", table_name, keyContent.ToString(), valueContent.ToString());

            var checkList = Cache_VMData.GetAddCheckList(table_name, list.ToNotMainIdList());

            if (checkList.Count == 0)
            {
                string template = @"
        public bool Add{3}({0} model)
        {{
			{1}
            using (IDbConnection sqlcn = ConnectionFactory.{2})
            {{
                return sqlcn.Execute(insertSql, model) > 0;
            }}
        }}
";

                return(string.Format(template,
                                     model_name,
                                     addContent,
                                     db_name,
                                     table_name));
            }
            else
            {
                string select_text = SqlTextHelper.CreateSelectCountSql(table_name, checkList);
                string template    = @"
        public bool Add{3}({0} model)
        {{
            {4}
			{1}
            using (IDbConnection sqlcn = ConnectionFactory.{2})
            {{
                sqlcn.Open();
                int count = sqlcn.QuerySingleOrDefault<int>(selectSql, model);
                if(count == 0)
                {{
                    return sqlcn.Execute(insertSql, model) > 0;
                }}

                return false;
            }}
        }}
";

                return(string.Format(template,
                                     model_name,
                                     addContent,
                                     db_name,
                                     table_name,
                                     select_text));
            }
        }
        private static string CreateJsOperation(int action, List <SqlColumnInfo> colList, string table_name)
        {
            StringBuilder content = new StringBuilder(@"

        <script type=""text/javascript"">");

            #region edit
            if ((action & (int)action_type.edit) == (int)action_type.edit)
            {
                // 定义变量
                StringBuilder editDefineVarContent = new StringBuilder();
                editDefineVarContent.AppendFormat(@"var txtEdit{0} = """";", colList.ToKeyId());

                // 读取变量值
                StringBuilder editReadToVarContent = new StringBuilder();
                editReadToVarContent.AppendFormat(@"txtEdit{0} = $(this).val();", colList.ToKeyId());

                // 变量值 赋值到 内容中
                StringBuilder editVarToUIContent = new StringBuilder();
                editVarToUIContent.AppendFormat(@"$(""#txtEdit{0}"").val(txtEdit{0});", colList.ToKeyId());

                // 初始化提交的参数
                StringBuilder editSubmitContent = new StringBuilder();
                editSubmitContent.AppendFormat(@"var txtEdit{0} = $(""#txtEdit{0}"").val();", colList.ToKeyId());

                // 提交的post字符串内容
                StringBuilder editpostDataContent = new StringBuilder("var postData = ");
                editpostDataContent.AppendFormat(@"""txtEdit{0}="" + encodeURI(txtEdit{0}) ", colList.ToKeyId());

                int index    = 0;
                var editList = Cache_VMData.GetVMList(table_name, VMType.Edit, colList.ToNotMainIdList());
                foreach (var item in editList)
                {
                    editDefineVarContent.AppendFormat(@"
                var txtEdit{0} = """";", item.Name);

                    editReadToVarContent.AppendFormat(@"
                        txtEdit{0} = $(this).attr(""tag_{0}"");", item.Name);

                    editVarToUIContent.AppendFormat(@"
                    $(""#txtEdit{0}"").val(txtEdit{0});", item.Name);

                    editSubmitContent.AppendFormat(@"
                var txtEdit{0} = $(""#txtEdit{0}"").val();", item.Name);

                    editpostDataContent.AppendFormat(@" + ""&txtEdit{0}="" + encodeURI(txtEdit{0})", item.Name);

                    index++;
                }

                if (editpostDataContent.ToString() == "var postData = ")
                {
                    editpostDataContent.Append("\"\"");
                }

                editpostDataContent.Append(";");

                content.AppendFormat(@"

            function editModel() {{
                {0}
                var checkCount=0;
                $(""#tbcontent tbody"").find(""input[type='checkbox']"").each(function () {{
                    if ($(this)[0].checked) {{
                        {1}
                        checkCount++;
                    }}
                }});

                if (checkCount == 0) {{
                    alert(""请选择一个进行编辑!"");
                }} else if (checkCount > 1) {{
                    alert(""只能选择一个进行编辑!"");
                }} else {{
                    {2}
                    $(""#edit_Modal"").modal('show');
                }}
            }}

            function saveEditModel() {{
                {3}
                {4}
                $.ajax({{
                    type: ""POST"",
                    url: ""{5}.aspx?type=edit"",
                    data: postData.replace(""+"", ""%2b""), // 解决加号在传递中变成%20问题
                    success: function (msg) {{
                        if (msg == ""0"") {{
                            alert(""保存成功!"");
                            loadData();
                        }} else {{
                            alert(msg);
                        }}

                        $('#edit_Modal').modal('hide');        // close the dialog
                    }}
                }});
            }}", editDefineVarContent.ToString(),
                                     editReadToVarContent.ToString(),
                                     editVarToUIContent.ToString(),
                                     editSubmitContent.ToString(),
                                     editpostDataContent.ToString(),
                                     table_name);
            }
            #endregion

            #region add
            if ((action & (int)action_type.add) == (int)action_type.add)
            {
                StringBuilder addContent         = new StringBuilder();
                StringBuilder addPostDataContent = new StringBuilder("var postData = ");
                int           index   = 0;
                var           addList = Cache_VMData.GetVMList(table_name, VMType.Add, colList.ToNotMainIdList());
                foreach (var item in addList)
                {
                    addContent.AppendFormat(@"
                var txtAdd{0} = $(""#txtAdd{0}"").val();", item.Name);

                    if (index == 0)
                    {
                        addPostDataContent.AppendFormat("\"txtAdd{0}=\" + encodeURI(txtAdd{0}) ", item.Name);
                    }
                    else
                    {
                        addPostDataContent.AppendFormat(" + \"&txtAdd{0}=\" + encodeURI(txtAdd{0})", item.Name);
                    }

                    index++;
                }

                if (addPostDataContent.ToString() == "var postData = ")
                {
                    addPostDataContent.Append("\"\"");
                }

                addPostDataContent.Append(";");

                content.AppendFormat(@"

            function newModel() {{
                $('#add_Modal').modal('show');
            }}

            function saveAddModel() {{
                {0}
                {1}
                $.ajax({{
                    type: ""POST"",
                    url: ""{2}.aspx?type=add"",
                    data: postData.replace(""+"",""%2b""),
                    success: function (msg) {{
                        if (msg == ""0"") {{
                            alert(""添加成功!"");
                            loadData();
                        }} else {{
                            alert(msg);
                        }}

                        $('#add_Modal').modal('hide');
                    }}
                }});
            }}", addContent.ToString(),
                                     addPostDataContent.ToString(),
                                     table_name);
            }
            #endregion

            #region del
            if ((action & (int)action_type.delete) == (int)action_type.delete)
            {
                string template = string.Format(@"

            function destroyModel() {{
                var checkCount=0;
                $(""#tbcontent tbody"").find(""input[type='checkbox']"").each(function () {{
                    if ($(this)[0].checked) {{
                        checkCount++;
                    }}
                }});

                if (checkCount > 0) {{
                    $.confirm({{
                        content: ""确定删除选中数据吗?"",
                        text: ""确定删除选中数据吗?"",
                        title: ""提示"",
                        confirm: function(button) {{
                            var ids = """";
                            $(""#tbcontent tbody"").find(""input[type='checkbox']"").each(function () {{
                                if ($(this)[0].checked) {{
                                    ids += $(this).val() + "","";
                                }}
                            }});

                            ids = ids.substring(0, ids.length-1);
                            $.post('{0}.aspx?type=delete', {{ ids: ids }}, function (msg) {{
                                if (msg == ""0"") {{
                                    alert(""删除成功"");
                                    loadData();
                                }} else {{
                                    alert(msg);
                                }}
                            }}, 'json');
                        }},
                        cancel: function(button) {{
                            // nothing to do
                        }},
                        confirmButton: ""确定"",
                        cancelButton: ""取消"",
                        post: true,
                        confirmButtonClass: ""btn-danger"",
                        cancelButtonClass: ""btn-default"",
                        dialogClass: ""modal-dialog modal-lg"" // Bootstrap classes for large modal
                    }});
                }}else{{
                    alert(""请勾选进行删除!"");
                }}
            }}", table_name,
                                                colList.ToKeyId());
                content.Append(template);
            }
            #endregion

            #region export all

            if ((action & (int)action_type.export_all) == (int)action_type.export_all)
            {
                int           index           = 0;
                StringBuilder coditionContent = new StringBuilder();
                StringBuilder pagePost        = new StringBuilder();
                var           queryList       = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                foreach (var item in queryList)
                {
                    // 找到一个
                    coditionContent.AppendFormat(@"
                var txtSearch{0} = $(""#txtSearch{0}"").val();", item.Name);

                    // var pagePost = "&xxx=" + xxx + "&yyy=" +yyy;
                    if (index == 0)
                    {
                        pagePost.AppendFormat("var pageData = \"&txtSearch{0}=\" + txtSearch{0}", item.Name);
                    }
                    else
                    {
                        pagePost.AppendFormat("+ \"&txtSearch{0}=\" + txtSearch{0}", item.Name);
                    }

                    index++;
                }

                if (colList.ToNotMainIdList().Count == 0)
                {
                    pagePost.Append("var pageData = \"\";\r\n");
                }
                else
                {
                    pagePost.Append(";");
                }

                // selectExport
                content.AppendFormat(@"

            function exportAll() {{
                {1}
                {2}
                document.location=""{0}.aspx?type=downall"" + pageData.replace(""+"",""%2b"");
            }}", table_name,
                                     coditionContent.ToString(),
                                     pagePost.ToString());
            }

            #endregion

            #region export part

            if ((action & (int)action_type.export_select) == (int)action_type.export_select)
            {
                int           index           = 0;
                StringBuilder coditionContent = new StringBuilder();
                StringBuilder pagePost        = new StringBuilder();
                var           queryList       = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                foreach (var item in queryList)
                {
                    // 找到一个
                    coditionContent.AppendFormat(@"
                var txtSearch{0} = $(""#txtSearch{0}"").val();", item.Name);

                    // var pagePost = "&xxx=" + xxx + "&yyy=" +yyy;
                    if (index == 0)
                    {
                        pagePost.AppendFormat("var pageData = \"&txtSearch{0}=\" + txtSearch{0}", item.Name);
                    }
                    else
                    {
                        pagePost.AppendFormat("+ \"&txtSearch{0}=\" + txtSearch{0}", item.Name);
                    }

                    index++;
                }

                if (colList.ToNotMainIdList().Count == 0)
                {
                    pagePost.Append("var pageData = \"\";\r\n");
                }
                else
                {
                    pagePost.Append(";");
                }

                // selectExport
                content.AppendFormat(@"

            function selectExport() {{
                var checkCount=0;
                var ids = """";
                $(""#tbcontent tbody"").find(""input[type='checkbox']"").each(function () {{
                    if ($(this)[0].checked) {{
                        ids += $(this).val() + "","";
                        checkCount++;
                    }}
                }});

                if (checkCount>0) {{
                    document.location=""{0}.aspx?type=down&ids="" + ids;
                }}
            }}
", table_name);
            }

            #endregion

            content.AppendLine(@"
        </script>");

            return(content.ToString());
        }
        public static string CreateAddMethod(int action, string table_name, List <SqlColumnInfo> colList, string model_name, string db_name)
        {
            if ((action & (int)action_type.add) == (int)action_type.add)
            {
                StringBuilder addContent       = new StringBuilder();
                StringBuilder valueContent     = new StringBuilder(") values (");
                StringBuilder addparamsContent = new StringBuilder("List<MySqlParameter> listParams = new List<MySqlParameter>();\r\n");
                addContent.AppendFormat("string insertSql = \"insert into {0}(", table_name);
                int index   = 0;
                var addList = Cache_VMData.GetVMList(table_name, VMType.Add, colList.ToNotMainIdList());
                foreach (var item in addList)
                {
                    if (index == 0)
                    {
                        addContent.Append(item.Name);
                        valueContent.Append("@" + item.Name);
                    }
                    else
                    {
                        addContent.Append(" ," + item.Name);
                        valueContent.Append(" ,@" + item.Name);
                    }

                    addparamsContent.AppendFormat("\t\t\tlistParams.Add(new MySqlParameter(\"@{0}\", {1}) {{ Value = model.{0} }});\r\n", item.Name, item.DbType.ToMySqlDbType());

                    index++;
                }

                var checkList = Cache_VMData.GetAddCheckList(table_name, colList.ToNotMainIdList());
                if (checkList.Count == 0)
                {
                    addContent.Append(valueContent.ToString() + ")\";");
                    string template = @"
        public bool Add{4}({0} model)
        {{
			{1}
            {2}
            using (MySqlConnection sqlcn = ConnectionFactory.{3})
            {{
                return MySqlHelper2.ExecuteNonQuery(sqlcn, CommandType.Text, insertSql, listParams.ToArray()) > 0;
            }}
        }}
";

                    return(string.Format(template,
                                         model_name,
                                         addContent.ToString(),
                                         addparamsContent.ToString(),
                                         db_name,
                                         table_name));
                }
                else
                {
                    string select_text = SqlTextHelper.CreateSelectCountSql(table_name, checkList);
                    addContent.Append(valueContent.ToString() + ")\";");
                    string template = @"
        public bool Add{4}({0} model)
        {{
			{1}
            {2}
            {5}
            using (MySqlConnection sqlcn = ConnectionFactory.{3})
            {{
                Object obj = MySqlHelper2.ExecuteScaler(sqlcn, CommandType.Text, selectSql, listParams.ToArray());
                if(obj == null || obj == DBNull.Value)
                {{
                    return false;
                }}

                int count = Convert.ToInt32(obj);
                if(count == 0)
                {{
                    return MySqlHelper2.ExecuteNonQuery(sqlcn, CommandType.Text, insertSql, listParams.ToArray()) > 0;
                }}
                else
                {{
                    return false;
                }}
            }}
        }}
";

                    return(string.Format(template,
                                         model_name,
                                         addContent.ToString(),
                                         addparamsContent.ToString(),
                                         db_name,
                                         table_name,
                                         select_text));
                }
            }
            else
            {
                return(string.Empty);
            }
        }
        /// <summary>
        /// 创建对象
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        private static string CreateDialog(int action, List <SqlColumnInfo> colList, string table_name)
        {
            StringBuilder dialogContent = new StringBuilder();

            #region 添加
            if ((action & (int)action_type.add) == (int)action_type.add)
            {
                // 行数过多,分成两行
                string template = @"
    <div id=""dlg-add"" class=""easyui-dialog"" style=""width: 400px; height: 240px; padding: 10px 20px""
        closed=""true"" buttons=""#dlg-add-buttons"">
        <div class=""ftitle"">
        </div>
        <form id=""fm-add"" method=""post"" enctype=""multipart/form-data"" action=""""
        novalidate=""novalidate"">
{0}
        </form>
    </div>
    <div id=""dlg-add-buttons"">
        <a href=""javascript:void(0)"" class=""easyui-linkbutton c6"" iconcls=""icon-ok"" onclick=""saveAddModel()""
            style=""width: 90px"">保 存</a> <a href=""javascript:void(0)"" class=""easyui-linkbutton""
                iconcls=""icon-cancel"" onclick=""javascript:$('#dlg-add').dialog('close')"" style=""width: 90px"">
                取 消</a>
    </div>";

                StringBuilder content = new StringBuilder();
                content.AppendFormat(@"        <input type=""hidden"" id=""txtAdd{0}"" value="""" />", colList.ToKeyId());
                var addList = Cache_VMData.GetVMList(table_name, VMType.Add, colList.ToNotMainIdList());
                foreach (var item in addList)
                {
                    // &#12288; 占一个中文字符
                    content.AppendFormat(@"
        <div class=""fitem"">
            <label for=""txtAdd{0}"">{1}:</label>
            <input type=""text"" id=""txtAdd{0}"" name=""txtAdd{0}"" {2} />
        </div>", item.Name, item.Comment.PadLeftStr(4, "&emsp;"), item.DbType.ToEasyUIInputClassOptStr());
                }

                dialogContent.Append(string.Format(template, content.ToString()));
            }
            #endregion

            #region 编辑
            if ((action & (int)action_type.edit) == (int)action_type.edit)
            {
                // 行数过多,分成两行
                string template = @"
    <div id=""dlg-edit"" class=""easyui-dialog"" style=""width: 400px; height: 240px; padding: 10px 20px""
        closed=""true"" buttons=""#dlg-edit-buttons"">
        <div class=""ftitle"">
        </div>
        <form id=""fm-edit"" method=""post"" enctype=""multipart/form-data"" action=""""
        novalidate=""novalidate"">
{0}
        </form>
    </div>
    <div id=""dlg-edit-buttons"">
        <a href=""javascript:void(0)"" class=""easyui-linkbutton c6"" iconcls=""icon-ok"" onclick=""saveEditModel()""
            style=""width: 90px"">保 存</a> <a href=""javascript:void(0)"" class=""easyui-linkbutton""
                iconcls=""icon-cancel"" onclick=""javascript:$('#dlg-edit').dialog('close')"" style=""width: 90px"">
                取 消</a>
    </div>";

                StringBuilder content = new StringBuilder();
                content.AppendFormat(@"        <input type=""hidden"" id=""txtEdit{0}"" value="""" />", colList.ToKeyId());
                var editList = Cache_VMData.GetVMList(table_name, VMType.Edit, colList.ToNotMainIdList());
                foreach (var item in editList)
                {
                    // 初始化form显示数据
                    // &#12288; 占一个中文字符
                    content.AppendFormat(@"
        <div class=""fitem"">
            <label for=""txtEdit{0}"">{1}:</label>
            <input type=""text"" id=""txtEdit{0}"" name=""txtEdit{0}"" {2} />
        </div>", item.Name, item.Comment.PadLeftStr(4, "&emsp;"), item.DbType.ToEasyUIInputClassOptStr());
                }

                dialogContent.Append(string.Format(template, content.ToString()));
            }
            #endregion

            return(dialogContent.ToString());
        }
        private static string CreateJsOperation(int action, List <SqlColumnInfo> colList, string table_name)
        {
            StringBuilder content = new StringBuilder(@"
    <script type=""text/javascript"">");

            #region edit
            if ((action & (int)action_type.edit) == (int)action_type.edit)
            {
                StringBuilder editSubmitContent = new StringBuilder();
                editSubmitContent.AppendFormat("\t\t\tvar txtEdit{0} = $(\"#txtEdit{0}\").val();\r\n", colList.ToKeyId());
                StringBuilder postDataContent = new StringBuilder("var postData = ");
                postDataContent.AppendFormat("\"txtEdit{0}=\" + encodeURI(txtEdit{0}) ", colList.ToKeyId());
                int index = 0;

                StringBuilder editContent = new StringBuilder();
                editContent.AppendFormat(@"                    $(""#txtEdit{0}"").val(row.{0});", colList.ToKeyId());
                var editList = Cache_VMData.GetVMList(table_name, VMType.Edit, colList.ToNotMainIdList());
                foreach (var item in editList)
                {
                    editContent.AppendFormat(@"
                    $(""#txtEdit{0}"").textbox(""setValue"", row.{0});", item.Name);
                    editSubmitContent.AppendFormat("\t\t\tvar txtEdit{0} = $(\"#txtEdit{0}\").textbox(\"getValue\");\r\n", item.Name);
                    postDataContent.AppendFormat(" + \"&txtEdit{0}=\" + encodeURI(txtEdit{0})", item.Name);

                    index++;
                }

                if (postDataContent.ToString() == "var postData = ")
                {
                    postDataContent.Append("\"\"");
                }

                postDataContent.Append(";");

                content.AppendFormat(@"

        function editModel() {{
            var row = $('#dg').datagrid('getChecked');
            if (row) {{
                if(row.length==1)
                {{
                    row = row[0];
                    $('#dlg-edit').dialog('open').dialog('setTitle', '编辑成员');
                    $('#fm-edit').form('load', row);
{0}
                }}
                else{{
                    alter(""编辑只能选择一个!"");
                }}
            }}
        }}

        function saveEditModel(){{
            {1}
            {2}
            $.ajax({{
                type: ""POST"",
                url: ""/{3}/edit"",
                data: postData,
                success: function (msg) {{
                    if (msg == ""0"") {{
                        $(""#dialog>p"").text(""修改成功!"");
                        LoadData();
                    }} else {{
                        $(""#dialog>p"").text(msg);
                    }}

                    $('#dlg').dialog('close');        // close the dialog

                    // show dialog
                    $(""#dialog"").dialog({{
                        width: 180,
                        height: 100,
                        buttons: {{
                            Ok: function () {{
                                $(this).dialog(""close"");
                            }}
                        }}
                    }});
                }}
            }});
        }}
", editContent.ToString(),
                                     editSubmitContent.ToString(),
                                     postDataContent.ToString(),
                                     table_name);
            }
            #endregion

            #region add
            if ((action & (int)action_type.add) == (int)action_type.add)
            {
                StringBuilder addContent      = new StringBuilder();
                StringBuilder postDataContent = new StringBuilder("var postData = ");
                int           index           = 0;
                var           addList         = Cache_VMData.GetVMList(table_name, VMType.Add, colList.ToNotMainIdList());
                foreach (var item in addList)
                {
                    addContent.AppendFormat("\t\t\tvar txtAdd{0} = $(\"#txtAdd{0}\").textbox(\"getValue\");\r\n", item.Name);
                    if (index == 0)
                    {
                        postDataContent.AppendFormat("\"txtAdd{0}=\" + encodeURI(txtAdd{0}) ", item.Name);
                    }
                    else
                    {
                        postDataContent.AppendFormat(" + \"&txtAdd{0}=\" + encodeURI(txtAdd{0})", item.Name);
                    }

                    index++;
                }

                if (postDataContent.ToString() == "var postData = ")
                {
                    postDataContent.Append("\"\"");
                }

                postDataContent.Append(";");

                content.AppendFormat(@"
        function newModel() {{
            $('#dlg-add').dialog('open').dialog('setTitle', '添加成员');
        }}

        function saveAddModel() {{
            {0}
            {1}
            $.ajax({{
                type: ""POST"",
                url: ""/{2}/add"",
                data: postData,
                success: function (msg) {{
                    if (msg == ""0"") {{
                        $(""#dialog>p"").text(""添加成功!"");
                        LoadData();
                    }} else {{
                        $(""#dialog>p"").text(msg);
                    }}

                    $('#dlg').dialog('close');        // close the dialog

                    // show dialog
                    $(""#dialog"").dialog({{
                        width: 180,
                        height: 100,
                        buttons: {{
                            Ok: function () {{
                                $(this).dialog(""close"");
                            }}
                        }}
                    }});
                }}
            }});
        }}", addContent.ToString(),
                                     postDataContent.ToString(),
                                     table_name);
            }
            #endregion

            #region del
            if ((action & (int)action_type.delete) == (int)action_type.delete)
            {
                string template = string.Format(@"

        function destroyUser() {{
            var row = $('#dg').datagrid('getChecked');
            if (row && row.length > 0) {{
                $.messager.confirm('Confirm', '确定删除该数据吗?', function (r) {{
                    if (r) {{
                        var ids = """";
                        for(var index=0;i<r.length;i++){{
                            ids+=r[i].{1}+"","";
                        }}

                        ids = ids.substring(0, ids.length-1);
                        $.post('/{0}/delete', {{ ids: ids }}, function (result) {{
                            if (result.success) {{
                                $('#dg').datagrid('reload');    // reload the user data
                            }} else {{
                                $.messager.show({{    // show error message
                                    title: 'Error',
                                    msg: result.errorMsg
                                }});
                            }}
                        }}, 'json');
                    }}
                }});
            }}
        }}", table_name,
                                                colList.ToKeyId());

                content.Append(template);
            }
            #endregion

            #region export

            if ((action & (int)action_type.export_all) == (int)action_type.export_all)
            {
                int           index           = 0;
                StringBuilder coditionContent = new StringBuilder();
                StringBuilder pagePost        = new StringBuilder();
                var           queryList       = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                foreach (var item in queryList)
                {
                    // 找到一个
                    coditionContent.AppendFormat("\t\t\tvar txtSearch{0} = $(\"#txtSearch{0}\").textbox(\"getValue\");\r\n", item.Name);

                    // var pagePost = "&xxx=" + xxx + "&yyy=" +yyy;
                    if (index == 0)
                    {
                        pagePost.AppendFormat("\t\t\tvar pageData = \"&txtSearch{0}=\" + txtSearch{0}", item.Name);
                    }
                    else
                    {
                        pagePost.AppendFormat("+ \"&txtSearch{0}=\" + txtSearch{0}", item.Name);
                    }

                    index++;
                }

                if (colList.ToNotMainIdList().Count == 0)
                {
                    pagePost.Append("\t\t\tvar pageData = \"\";\r\n");
                }
                else
                {
                    pagePost.Append(";");
                }

                // selectExport
                content.AppendFormat(@"
        function exportAll() {{
{2}
{3}
                document.location=""/{1}/downall?"" + pageData;
        }}", colList.ToKeyId(),
                                     table_name,
                                     coditionContent.ToString(),
                                     pagePost.ToString());
            }

            #endregion

            #region select export
            if ((action & (int)action_type.export_select) == (int)action_type.export_select)
            {
                int           index           = 0;
                StringBuilder coditionContent = new StringBuilder();
                StringBuilder pagePost        = new StringBuilder();
                var           queryList       = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                foreach (var item in queryList)
                {
                    // 找到一个
                    coditionContent.AppendFormat("\t\t\tvar txtSearch{0} = $(\"#txtSearch{0}\").textbox(\"getValue\");\r\n", item.Name);

                    // var pagePost = "&xxx=" + xxx + "&yyy=" +yyy;
                    if (index == 0)
                    {
                        pagePost.AppendFormat("\t\t\tvar pageData = \"&txtSearch{0}=\" + txtSearch{0}", item.Name);
                    }
                    else
                    {
                        pagePost.AppendFormat("+ \"&txtSearch{0}=\" + txtSearch{0}", item.Name);
                    }

                    index++;
                }

                if (colList.ToNotMainIdList().Count == 0)
                {
                    pagePost.Append("\t\t\tvar pageData = \"\";\r\n");
                }
                else
                {
                    pagePost.Append(";");
                }

                // selectExport
                content.AppendFormat(@"

        function selectExport() {{
            var row = $('#dg').datagrid('getChecked');
            if (row && row.length>0) {{
                var ids = """";
                for(var i=0;i<row.length;i++){{
                    ids += row[i].{0} + "","";
                }}

                document.location=""/{1}/down?ids="" + ids;
            }}
        }}", colList.ToKeyId(),
                                     table_name);
            }
            #endregion

            content.AppendLine("\r\n\t</script>");

            return(content.ToString());
        }
        public static string CreateAddMethod(int action, string table_name, List <SqlColumnInfo> colList, string model_name, string db_name)
        {
            if ((action & (int)action_type.add) == (int)action_type.add)
            {
                StringBuilder keyContent   = new StringBuilder("");
                StringBuilder valueContent = new StringBuilder("");
                var           addList      = Cache_VMData.GetVMList(table_name, VMType.Add, colList.ToNotMainIdList());
                for (var i = 0; i < addList.Count; i++)
                {
                    var item = addList[i];
                    if (i == 0)
                    {
                        keyContent.Append(item.Name);
                        valueContent.Append("@" + item.Name);
                    }
                    else
                    {
                        keyContent.Append(" ," + item.Name);
                        valueContent.Append(" ,@" + item.Name);
                    }
                }

                string addContent = string.Format(@"string insertSql = ""insert into {0}({1}) values ({2});"";", table_name, keyContent.ToString(), valueContent.ToString());
                var    checkList  = Cache_VMData.GetAddCheckList(table_name, colList.ToNotMainIdList());
                if (checkList.Count == 0)
                {
                    string template = @"
        public bool Add{3}({0} model)
        {{
			{1}
            using (IDbConnection sqlcn = ConnectionFactory.{2})
            {{
                return sqlcn.Execute(insertSql, model) > 0;
            }}
        }}
";

                    return(string.Format(template,
                                         table_name,
                                         addContent.ToString(),
                                         db_name,
                                         table_name));
                }
                else
                {
                    string select_text = SqlTextHelper.CreateSelectCountSql(table_name, checkList);
                    string template    = @"
        public bool Add{3}({0} model)
        {{
            {4}
			{1}
            using (IDbConnection sqlcn = ConnectionFactory.{2})
            {{
                int count = sqlcn.QuerySingleOrDefault<int>(selectSql, model);
                if(count == 0)
                {{
                    return sqlcn.Execute(insertSql, model) > 0;
                }}

                return false;
            }}
        }}
";

                    return(string.Format(template,
                                         table_name,
                                         addContent.ToString(),
                                         db_name,
                                         table_name,
                                         select_text));
                }
            }
            else
            {
                return(string.Empty);
            }
        }
        public static string CreateQueryListMethod(int action, string table_name, List <SqlColumnInfo> colList, string model_name, string db_name)
        {
            if ((action & (int)action_type.query_list) == (int)action_type.query_list)
            {
                StringBuilder queryWhereContent = new StringBuilder();
                StringBuilder queryListParams   = new StringBuilder();
                StringBuilder setInfoContent    = new StringBuilder();
                int           index             = 0;
                var           queryList         = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                foreach (var item in queryList)
                {
                    queryListParams.AppendFormat("{0} {1},", item.DbType.ToMsSqlClassType(), item.Name);

                    if (index == 0)
                    {
                        if (item.DbType.ToLower() == "int" || item.DbType.ToLower() == "bigint" || item.DbType.ToLower() == "decimal" || item.DbType.ToLower() == "float" || item.DbType.ToLower() == "double")
                        {
                            queryWhereContent.AppendFormat("if ({0} >= 0)\r\n", item.Name);
                        }
                        else if (item.DbType.ToLower() == "tinyint")
                        {
                            queryWhereContent.AppendFormat("if ({0} >= 0)\r\n", item.Name);
                        }
                        else if (item.DbType.ToLower() == "datetime" || item.DbType.ToLower() == "date")
                        {
                            queryWhereContent.AppendFormat("if ({0} != DateTime.MinValue)\r\n", item.Name);
                        }
                        else
                        {
                            queryWhereContent.AppendFormat("if (!string.IsNullOrEmpty({0}))\r\n", item.Name);
                        }
                    }
                    else
                    {
                        if (item.DbType.ToLower() == "int" || item.DbType.ToLower() == "bigint" || item.DbType.ToLower() == "decimal" || item.DbType.ToLower() == "float" || item.DbType.ToLower() == "double")
                        {
                            queryWhereContent.AppendFormat("\r\n\t\t\tif ({0} >= 0)\r\n", item.Name);
                        }
                        else if (item.DbType.ToLower() == "tinyint")
                        {
                            queryWhereContent.AppendFormat("\r\n\t\t\tif ({0} >= 0)\r\n", item.Name);
                        }
                        else if (item.DbType.ToLower() == "datetime" || item.DbType.ToLower() == "date")
                        {
                            queryWhereContent.AppendFormat("\r\n\t\t\tif ({0} != DateTime.MinValue)\r\n", item.Name);
                        }
                        else
                        {
                            queryWhereContent.AppendFormat("\r\n\t\t\tif (!string.IsNullOrEmpty({0}))\r\n", item.Name);
                        }
                    }

                    setInfoContent.AppendFormat("\t\t\tinfo.{0} = {0};\r\n", item.Name);
                    queryWhereContent.Append("\t\t\t{\r\n");
                    queryWhereContent.AppendFormat("\t\t\t\twhereStr += \" and {0}=@{0} \";\r\n", item.Name);
                    queryWhereContent.Append("\t\t\t}");
                    queryWhereContent.AppendLine();

                    index++;
                }

                StringBuilder selectSqlContent = new StringBuilder();
                selectSqlContent.Append("string selectSql = string.Format(@\"select * from " + table_name + " where 1=1 {0} limit {1},{2};\", whereStr, ((page - 1) * pageSize), pageSize);\r\n");

                string template = @"
        public List<{0}> QueryList({1}int page, int pageSize)
        {{
            {0} info = new {0}();
{5}
            string whereStr = string.Empty;
            {2}
            {7}
            List<{0}> result = new List<{0}>();
            using (IDbConnection sqlcn = ConnectionFactory.{3})
            {{
                result = sqlcn.Query<{0}>(selectSql, info).ToList();
            }}

            return result;
        }}

        public int QueryListCount({4})
        {{
            {0} info = new {0}();
{5}
            string whereStr = string.Empty;
            {2}
            string selectCountSql = string.Format(""select count(0) from {6} where 1=1 {{0}} limit 1"", whereStr);
            using (IDbConnection sqlcn = ConnectionFactory.{3})
            {{
                return sqlcn.QuerySingle<int>(selectCountSql, info);
            }}
        }}
";

                string queryCountParams = queryListParams.Length > 0 ? queryListParams.ToString().Substring(0, queryListParams.Length - 1) : queryListParams.ToString();
                return(string.Format(template,
                                     table_name,
                                     queryListParams.ToString(),
                                     queryWhereContent.ToString(),
                                     db_name,
                                     queryCountParams,
                                     setInfoContent.ToString(),
                                     table_name,
                                     selectSqlContent.ToString()));
            }
            else
            {
                return(string.Empty);
            }
        }
        public static string CreateGetAllAndPart(int action, string table_name, List <SqlColumnInfo> colList, string model_name, string db_name)
        {
            var down_allModel     = (action | (int)action_type.export_all) == (int)action_type.export_all;
            var down_selelctModel = (action | (int)action_type.export_select) == (int)action_type.export_select;

            if (down_allModel || down_selelctModel)
            {
                StringBuilder down_allModel_Str = new StringBuilder();
                #region 导出全部
                if (down_allModel)
                {
                    StringBuilder queryWhereContent = new StringBuilder();
                    StringBuilder queryListParams   = new StringBuilder();
                    StringBuilder setInfoContent    = new StringBuilder();
                    int           index             = 0;
                    var           queryList         = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                    foreach (var item in queryList)
                    {
                        queryListParams.AppendFormat("{0} {1},", item.DbType.ToMsSqlClassType(), item.Name);

                        if (index == 0)
                        {
                            if (item.DbType.ToLower() == "int" || item.DbType.ToLower() == "bigint")
                            {
                                queryWhereContent.AppendFormat("if ({0} > 0)\r\n", item.Name);
                            }
                            else if (item.DbType.ToLower() == "tinyint")
                            {
                                queryWhereContent.AppendFormat("if ({0} >= 0)\r\n", item.Name);
                            }
                            else if (item.DbType.ToLower() == "datetime" || item.DbType.ToLower() == "date")
                            {
                                queryWhereContent.AppendFormat("if ({0} != DateTime.MinValue)\r\n", item.Name);
                            }
                            else
                            {
                                queryWhereContent.AppendFormat("if (!string.IsNullOrEmpty({0}))\r\n", item.Name);
                            }
                        }
                        else
                        {
                            if (item.DbType.ToLower() == "int" || item.DbType.ToLower() == "bigint")
                            {
                                queryWhereContent.AppendFormat("\t\t\tif ({0} > 0)\r\n", item.Name);
                            }
                            else if (item.DbType.ToLower() == "tinyint")
                            {
                                queryWhereContent.AppendFormat("\t\t\tif ({0} >= 0)\r\n", item.Name);
                            }
                            else if (item.DbType.ToLower() == "datetime" || item.DbType.ToLower() == "date")
                            {
                                queryWhereContent.AppendFormat("\t\t\tif ({0} != DateTime.MinValue)\r\n", item.Name);
                            }
                            else
                            {
                                queryWhereContent.AppendFormat("\t\t\tif (!string.IsNullOrEmpty({0}))\r\n", item.Name);
                            }
                        }

                        setInfoContent.AppendFormat("\t\t\tinfo.{0} = {0};\r\n", item.Name);
                        queryWhereContent.Append("            {\r\n");
                        queryWhereContent.AppendFormat("                whereStr += \" and {0}=@{0} \";\r\n", item.Name);
                        queryWhereContent.Append("            }\r\n");
                        queryWhereContent.AppendLine();

                        index++;
                    }

                    string template = @"
        public List<{0}> GetAll({3})
        {{
            {0} info = new {0}();
{4}
            string whereStr = string.Empty;
{1}
            string selectAllSql = string.Format(""select * from {5} where 1=1 {{0}} limit 10000"", whereStr);
            List<{0}> result = new List<{0}>();
            using (IDbConnection sqlcn = ConnectionFactory.{2})
            {{
                result = sqlcn.Query<{0}>(selectAllSql, info).ToList();
            }}

            return result;
        }}
";

                    string queryCountParams = queryListParams.Length > 0 ? queryListParams.ToString().Substring(0, queryListParams.Length - 1) : queryListParams.ToString();
                    down_allModel_Str.AppendFormat(template,
                                                   table_name,
                                                   queryWhereContent.ToString(),
                                                   db_name,
                                                   queryCountParams,
                                                   setInfoContent.ToString(),
                                                   table_name);
                }
                #endregion

                StringBuilder down_selectModel_Str = new StringBuilder();
                #region 导出选中
                if (down_selelctModel)
                {
                    StringBuilder selectSqlContent = new StringBuilder();
                    selectSqlContent.Append("            string selectSql = string.Format(@\"select * from\r\n");
                    selectSqlContent.Append("            " + table_name + " where " + colList.ToKeyId() + " in ({1})\r\n");
                    selectSqlContent.Append("            {0} limit {2};\", whereStr, idArrayStr, idList.Count);\r\n");

                    string template = @"
        public List<{0}> GetPartAll(List<string> idList)
        {{
            var idArrayStr = string.Join("","", (from f in idList
                                select ""'""+ f + ""'"").ToArray());
            string whereStr = string.Empty;
{2}
            List<{0}> result = new List<{0}>();
            using (IDbConnection sqlcn = ConnectionFactory.{1})
            {{
                result = sqlcn.Query<{0}>(selectSql).ToList();
            }}

            return result;
        }}

";
                    down_selectModel_Str.AppendFormat(template,
                                                      table_name,
                                                      db_name,
                                                      selectSqlContent.ToString());
                }
                #endregion

                return(down_allModel_Str.ToString() + down_selectModel_Str.ToString());
            }
            else
            {
                return(string.Empty);
            }
        }
Ejemplo n.º 21
0
        private static string CreateDownAndDownAll(int action, List <SqlColumnInfo> colList, string table_name, string dal_name, string model_name)
        {
            var down_all_model    = (action | (int)action_type.export_all) == (int)action_type.export_all;
            var down_select_model = (action | (int)action_type.export_select) == (int)action_type.export_select;

            if (down_all_model || down_select_model)
            {
                StringBuilder down_all_str = new StringBuilder();
                #region 导出全部
                if (down_all_model)
                {
                    StringBuilder searchContent         = new StringBuilder();
                    StringBuilder searchStrContent      = new StringBuilder();
                    StringBuilder searchFieldStrContent = new StringBuilder();
                    string        template = @"
        [HttpGet]
        public ActionResult downall({6})
        {{
{0}
            {1} dal = new {1}();
            List<{5}> data = dal.GetAll({4});
            string content = CreateTableAll(data);

            return new FileContentResult(Encoding.UTF8.GetBytes(content), ""application/ms-excel;charset=UTF-8"") {{ FileDownloadName = ""{5}.xls"" }};
        }}

        private string CreateTableAll(List<{5}> list)
        {{
            StringBuilder content = new StringBuilder();
            
            // create columns header
            content.Append(""{2}"");
            for (int i = 0, len = list.Count; i < len; i++)
            {{
                content.Append(""<tr>"");
{3}
                content.Append(""</tr>"");
            }}
            content.Append(""</tbody></table>"");

            return content.ToString();            
        }}
";

                    var queryList = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                    foreach (var item in queryList)
                    {
                        if (item.DbType.ToLower() == "datetime" ||
                            item.DbType.ToLower() == "date" ||
                            item.DbType.ToLower() == "int" ||
                            item.DbType.ToLower() == "bigint" ||
                            item.DbType.ToLower() == "tinyint")
                        {
                            searchContent.AppendFormat("\t\t\tstring {0}Str = HttpUtility.UrlDecode(txtSearch{0});\r\n", item.Name);
                            if (item.DbType.ToLower() == "datetime" || item.DbType.ToLower() == "date")
                            {
                                searchContent.AppendFormat("\t\t\tDateTime {0} = DateTime.MinValue;\r\n", item.Name);
                                searchContent.AppendFormat("\t\t\tDateTime.TryParse({0}Str, out {0});\r\n", item.Name);
                            }
                            else
                            {
                                searchContent.AppendFormat("\t\t\tint {0} = 0;;\r\n", item.Name);
                                searchContent.AppendFormat("\t\t\tint.TryParse({0}Str, out {0});\r\n", item.Name);
                            }
                        }
                        else
                        {
                            searchContent.AppendFormat("            string {0} = HttpUtility.UrlDecode(txtSearch{0});\r\n", item.Name);
                        }

                        searchStrContent.AppendFormat(" {0},", item.Name);
                        searchFieldStrContent.AppendFormat("string txtSearch{0},", item.Name);
                    }

                    if (searchFieldStrContent.Length > 0)
                    {
                        searchFieldStrContent.Remove(searchFieldStrContent.Length - 1, 1);
                    }

                    // 移除最后的逗号
                    string searchStrCount = searchStrContent.Length > 0 ? searchStrContent.ToString().Substring(0, searchStrContent.Length - 1) : searchStrContent.ToString();

                    StringBuilder batContent = new StringBuilder();
                    batContent.Append(searchContent.ToString());

                    StringBuilder content = new StringBuilder();
                    content.Append("<table border='1'><thead><tr>");
                    foreach (var item in colList.ToNotMainIdList())
                    {
                        content.AppendFormat("<th>{0}</th>", item.Comment);
                    }

                    content.Append("</tr></thead>");

                    StringBuilder appendFormat = new StringBuilder();
                    foreach (var item in colList.ToNotMainIdList())
                    {
                        appendFormat.AppendFormat(@"                content.AppendFormat(""<td>{{0}}</td>"", list[i].{0});{1}", item.Name, Environment.NewLine);
                    }

                    down_all_str.AppendFormat(template,
                                              batContent.ToString(),
                                              dal_name,
                                              content.ToString(),
                                              appendFormat.ToString(),
                                              searchStrCount,
                                              table_name,
                                              searchFieldStrContent.ToString());
                }
                #endregion

                StringBuilder down_select_str = new StringBuilder();
                #region 导出选中
                if (down_select_model)
                {
                    StringBuilder searchContent    = new StringBuilder();
                    StringBuilder searchStrContent = new StringBuilder();
                    string        template         = @"
        [HttpGet]
        public ActionResult down(string ids)
        {{
{0}
            {1} dal = new {1}();
            List<{4}> data = dal.GetPartAll(idList);
            string content = CreateTable(data);

            return new FileContentResult(Encoding.UTF8.GetBytes(content), ""application/ms-excel;charset=UTF-8"") {{ FileDownloadName = ""{4}.xls"" }};
        }}

        private string CreateTable(List<{4}> list)
        {{
            StringBuilder content = new StringBuilder();
            
            // create columns header
            content.Append(""{2}"");
            for (int i = 0, len = list.Count; i < len; i++)
            {{
                content.Append(""<tr>"");
{3}
                content.Append(""</tr>"");
            }}
            content.Append(""</tbody></table>"");

            return content.ToString();            
        }}";

                    StringBuilder batContent = new StringBuilder();
                    searchContent.AppendFormat("            ids = HttpUtility.UrlDecode(ids);\r\n", colList.ToKeyId(), colList.ToKeyId());
                    searchContent.Append("            List<string> idList = ids.Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries).ToList();\r\n");
                    batContent.Append(searchContent.ToString());

                    StringBuilder content = new StringBuilder();
                    content.Append("<table border='1'><thead><tr>");
                    foreach (var item in colList.ToNotMainIdList())
                    {
                        content.AppendFormat("<th>{0}</th>", item.Comment);
                    }

                    content.Append("</tr></thead>");

                    StringBuilder appendFormat = new StringBuilder();
                    foreach (var item in colList.ToNotMainIdList())
                    {
                        appendFormat.AppendFormat(@"                content.AppendFormat(""<td>{{0}}</td>"", list[i].{0});{1}", item.Name, Environment.NewLine);
                    }

                    down_select_str.AppendFormat(template,
                                                 batContent.ToString(),
                                                 dal_name,
                                                 content.ToString(),
                                                 appendFormat.ToString(),
                                                 model_name);
                }
                #endregion

                return(down_all_str.ToString() + down_select_str.ToString());
            }
            return(string.Empty);
        }
Ejemplo n.º 22
0
        private static string CreateLoadData(int action, List <SqlColumnInfo> colList, string dal_name, string table_name)
        {
            string        template         = @"
        private void LoadData()
        {{
            int page = Convert.ToInt32(Request.Form[""page""]);
            int pageSize = Convert.ToInt32(Request.Form[""pageSize""]);
{0}
            {1} dal = new {1}();
            var list = dal.QueryList({2}page, pageSize);
{4}
            int itemCount = dal.QueryListCount({3});
            int pageCount = (int)Math.Ceiling((double)itemCount / (double)pageSize);
			JavaScriptSerializer js = new JavaScriptSerializer();
            var str = js.Serialize(new {{ PageCount = pageCount, ItemCount = itemCount, Data = list }});
            Response.Write(str);
        }}
";
            StringBuilder searchContent    = new StringBuilder();
            StringBuilder searchStrContent = new StringBuilder();

            if ((action & (int)action_type.query_list) == (int)action_type.query_list)
            {
                var queryList = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                foreach (var item in queryList)
                {
                    if (item.DbType.ToLower() == "datetime" ||
                        item.DbType.ToLower() == "date" ||
                        item.DbType.ToLower() == "int" ||
                        item.DbType.ToLower() == "bigint" ||
                        item.DbType.ToLower() == "tinyint")
                    {
                        searchContent.AppendFormat("\t\t\tstring {0}Str = HttpUtility.UrlDecode(Request[\"txtSearch{0}\"]);\r\n", item.Name);
                        if (item.DbType.ToLower() == "datetime" || item.DbType.ToLower() == "date")
                        {
                            searchContent.AppendFormat("\t\t\tDateTime {0} = DateTime.MinValue;\r\n", item.Name);
                            searchContent.AppendFormat("\t\t\tDateTime.TryParse({0}Str, out {0});\r\n", item.Name);
                        }
                        else
                        {
                            searchContent.AppendFormat("\t\t\tint {0} = 0;\r\n", item.Name);
                            searchContent.AppendFormat("\t\t\tif(!int.TryParse({0}Str, out {0}))\r\n", item.Name);
                            searchContent.Append("\t\t\t{\r\n");
                            searchContent.AppendFormat("\t\t\t\t{0} = -1;\r\n", item.Name);
                            searchContent.Append("\t\t\t}\r\n");
                        }
                    }
                    else
                    {
                        searchContent.AppendFormat("\t\t\tstring {0} = HttpUtility.UrlDecode(Request[\"txtSearch{0}\"]);\r\n", item.Name);
                    }

                    searchStrContent.AppendFormat(" {0},", item.Name);
                }

                StringBuilder encodeContent = new StringBuilder();
                foreach (var item in colList.ToNotMainIdList())
                {
                    if (item.DbType == "varchar" || item.DbType == "nvarchar" || item.DbType == "text")
                    {
                        encodeContent.AppendLine(string.Format("\t\t\tlist.ForEach(p => p.{0} = HttpUtility.HtmlEncode(p.{0}));", item.Name));
                    }
                }

                // 移除最后的逗号
                string searchStrCount = searchStrContent.Length > 0 ? searchStrContent.ToString().Substring(0, searchStrContent.Length - 1) : searchStrContent.ToString();
                return(string.Format(template, searchContent.ToString(), dal_name, searchStrContent.ToString(), searchStrCount, encodeContent.ToString()));
            }
            else
            {
                return(string.Empty);
            }
        }
Ejemplo n.º 23
0
        private static string CreateLoadData(int action, List <SqlColumnInfo> colList, string dal_name, string table_name)
        {
            string        template         = @"
        [HttpPost]
        public ActionResult load(int page, int pageSize{0})
        {{
{1}
            {2} dal = new {2}();
            var list = dal.QueryList({3}page, pageSize);
            int itemCount = dal.QueryListCount({4});
            int pageCount = (int)Math.Ceiling((double)itemCount / (double)pageSize);
{5}
            return new JsonResult() {{ Data = new {{ PageCount = pageCount, ItemCount = itemCount, Data = list }} }};
        }}
";
            StringBuilder searchContent    = new StringBuilder();
            StringBuilder searchStrContent = new StringBuilder();
            StringBuilder loadStrContent   = new StringBuilder();

            if ((action & (int)action_type.query_list) == (int)action_type.query_list)
            {
                var queryList = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                foreach (var item in queryList)
                {
                    if (item.DbType.ToLower() == "datetime" ||
                        item.DbType.ToLower() == "date" ||
                        item.DbType.ToLower() == "int" ||
                        item.DbType.ToLower() == "bigint" ||
                        item.DbType.ToLower() == "tinyint")
                    {
                        searchContent.AppendFormat("\t\t\tstring {0}Str = HttpUtility.UrlDecode(txtSearch{0});\r\n", item.Name);
                        if (item.DbType.ToLower() == "datetime" || item.DbType.ToLower() == "date")
                        {
                            searchContent.AppendFormat("\t\t\tDateTime {0} = DateTime.MinValue;\r\n", item.Name);
                            searchContent.AppendFormat("\t\t\tDateTime.TryParse({0}Str, out {0});\r\n", item.Name);
                        }
                        else
                        {
                            searchContent.AppendFormat("\t\t\tint {0} = 0;;\r\n", item.Name);
                            searchContent.AppendFormat("\t\t\tif(!int.TryParse({0}Str, out {0}))\r\n", item.Name);
                            searchContent.Append("\t\t\t{\r\n");
                            searchContent.AppendFormat("\t\t\t\t{0} = -1;\r\n", item.Name);
                            searchContent.Append("\t\t\t}\r\n");
                        }
                    }
                    else
                    {
                        searchContent.AppendFormat("\t\t\tstring {0} = HttpUtility.UrlDecode(txtSearch{0});\r\n", item.Name);
                    }

                    searchStrContent.AppendFormat(" {0},", item.Name);
                    loadStrContent.AppendFormat(", string txtSearch{0}", item.Name);
                }

                StringBuilder encodeContent = new StringBuilder();
                foreach (var item in colList.ToNotMainIdList())
                {
                    if (item.DbType.ToLower() == "varchar" || item.DbType.ToLower() == "nvarchar" || item.DbType.ToLower() == "text")
                    {
                        encodeContent.AppendLine(string.Format("\t\t\tlist.ForEach(p => p.{0} = HttpUtility.HtmlEncode(p.{0}));", item.Name));
                    }
                }

                // 移除最后的逗号
                string searchStrCount = searchStrContent.Length > 0 ? searchStrContent.ToString().Substring(0, searchStrContent.Length - 1) : searchStrContent.ToString();
                return(string.Format(template,
                                     loadStrContent.ToString(),
                                     searchContent.ToString(),
                                     dal_name,
                                     searchStrContent.ToString(),
                                     searchStrCount,
                                     encodeContent.ToString()));
            }
            else
            {
                return(string.Empty);
            }
        }
Ejemplo n.º 24
0
        private static string CreateDownAndDownAll(int action, List <SqlColumnInfo> colList, string table_name, string model_name, string dal_name)
        {
            var down_all_Model    = (action | (int)action_type.export_all) == (int)action_type.export_all;
            var down_select_Model = (action | (int)action_type.export_select) == (int)action_type.export_select;

            if (down_all_Model || down_select_Model)
            {
                StringBuilder resultContent = new StringBuilder();

                #region 导出全部
                if (down_all_Model)
                {
                    StringBuilder searchContent    = new StringBuilder();
                    StringBuilder searchStrContent = new StringBuilder();
                    var           queryList        = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                    foreach (var item in queryList)
                    {
                        if (item.DbType.ToLower() == "datetime" ||
                            item.DbType.ToLower() == "date" ||
                            item.DbType.ToLower() == "int" ||
                            item.DbType.ToLower() == "bigint" ||
                            item.DbType.ToLower() == "tinyint")
                        {
                            searchContent.AppendFormat("\t\t\tstring {0}Str = HttpUtility.UrlDecode(Request[\"txtSearch{0}\"]);\r\n", item.Name);
                            if (item.DbType.ToLower() == "datetime" || item.DbType.ToLower() == "date")
                            {
                                searchContent.AppendFormat("\t\t\tDateTime {0} = DateTime.MinValue;\r\n", item.Name);
                                searchContent.AppendFormat("\t\t\tDateTime.TryParse({0}Str, out {0});\r\n", item.Name);
                            }
                            else
                            {
                                searchContent.AppendFormat("\t\t\tint {0} = 0;;\r\n", item.Name);
                                searchContent.AppendFormat("\t\t\tint.TryParse({0}Str, out {0});\r\n", item.Name);
                            }
                        }
                        else
                        {
                            searchContent.AppendFormat("            string {0} = HttpUtility.UrlDecode(Request[\"txtSearch{0}\"]);\r\n", item.Name);
                        }

                        searchStrContent.AppendFormat(" {0},", item.Name);
                    }

                    // 移除最后的逗号
                    string searchStrCount = searchStrContent.Length > 0 ? searchStrContent.ToString().Substring(0, searchStrContent.Length - 1) : searchStrContent.ToString();

                    StringBuilder batContent = new StringBuilder();
                    batContent.Append(searchContent.ToString());

                    StringBuilder content = new StringBuilder();
                    content.Append("<table border='1'><thead><tr>");
                    foreach (var item in colList.ToNotMainIdList())
                    {
                        content.AppendFormat("<th>{0}</th>", item.Comment);
                    }

                    content.Append("</tr></thead>");

                    StringBuilder appendFormat = new StringBuilder();
                    foreach (var item in colList.ToNotMainIdList())
                    {
                        appendFormat.AppendFormat(@"                content.AppendFormat(""<td>{{0}}</td>"", list[i].{0});{1}", item.Name, Environment.NewLine);
                    }

                    string template = @"

        private void DownAll()
        {{
{0}
            {1} dal = new {1}();
            List<{2}> data = dal.GetAll({5});
            string content = CreateTableAll(data);
            Response.Clear(); 
            Response.Buffer = true; 
            Response.Charset = ""UTF-8""; 
            Response.AddHeader(""Content-Disposition"", ""attachment; filename=result.xls""); 
            Response.ContentEncoding = System.Text.Encoding.GetEncoding(""UTF-8""); 
            Response.ContentType = ""application/ms-excel;charset=UTF-8""; 
            Response.Write(content); 
            Response.Flush(); 
            Response.End(); 
        }}

        private string CreateTableAll(List<{2}> list)
        {{
            StringBuilder content = new StringBuilder();
            
            // create columns header
            content.Append(""{3}"");
            for (int i = 0, len = list.Count; i < len; i++)
            {{
                content.Append(""<tr>"");
{4}
                content.Append(""</tr>"");
            }}
            content.Append(""</tbody></table>"");

            return content.ToString();            
        }}";

                    // TODO
                    resultContent.AppendFormat(template, batContent.ToString(), dal_name, model_name, content.ToString(), appendFormat.ToString(), searchStrCount);
                }
                #endregion

                #region 导出选中
                if (down_select_Model)
                {
                    StringBuilder batContent = new StringBuilder();
                    batContent.Append("            string ids = HttpUtility.UrlDecode(Request[\"ids\"]);\r\n");
                    batContent.Append("            List<string> idList = ids.Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries).ToList();\r\n");

                    StringBuilder content = new StringBuilder();
                    content.Append("<table border='1'><thead><tr>");
                    foreach (var item in colList.ToNotMainIdList())
                    {
                        content.AppendFormat("<th>{0}</th>", item.Comment);
                    }

                    content.Append("</tr></thead>");

                    StringBuilder appendFormat = new StringBuilder();
                    foreach (var item in colList.ToNotMainIdList())
                    {
                        appendFormat.AppendFormat(@"                content.AppendFormat(""<td>{{0}}</td>"", list[i].{0});{1}", item.Name, Environment.NewLine);
                    }

                    string template = @"
        private void Down()
        {{
{0}
            {1} dal = new {1}();
            List<{2}> data = dal.GetPartAll(idList);
            string content = CreateTable(data);
            Response.Clear(); 
            Response.Buffer = true; 
            Response.Charset = ""UTF-8""; 
            Response.AddHeader(""Content-Disposition"", ""attachment; filename=result.xls""); 
            Response.ContentEncoding = System.Text.Encoding.GetEncoding(""UTF-8""); 
            Response.ContentType = ""application/ms-excel;charset=UTF-8""; 
            Response.Write(content); 
            Response.Flush(); 
            Response.End(); 
        }}

        private string CreateTable(List<{2}> list)
        {{
            StringBuilder content = new StringBuilder();
            
            // create columns header
            content.Append(""{3}"");
            for (int i = 0, len = list.Count; i < len; i++)
            {{
                content.Append(""<tr>"");
{4}
                content.Append(""</tr>"");
            }}
            content.Append(""</tbody></table>"");

            return content.ToString();            
        }}";

                    // TODO
                    resultContent.AppendFormat(template, batContent.ToString(), dal_name, model_name, content.ToString(), appendFormat.ToString());
                }
                #endregion

                return(resultContent.ToString());
            }
            else
            {
                return(string.Empty);
            }
        }
        public string CreateModel(string table_name, List <SqlColumnInfo> colList)
        {
            this.model_name = table_name + model_suffix;

            StringBuilder content = new StringBuilder();

            content.AppendLine("using System;");
            content.AppendLine("using System.Collections.Generic;");
            content.AppendLine("using System.Linq;");
            content.AppendLine("using System.Threading.Tasks;");
            content.AppendLine();
            content.AppendLine("namespace " + (string.IsNullOrEmpty(name_space) ? "命名空间" : name_space));
            content.AppendLine("{");
            if (!string.IsNullOrEmpty(table_name))
            {
                content.Append(CommentTool.CreateComment(table_name, 1));
            }

            content.AppendFormat("\tpublic class {0}\r\n", model_name);
            content.AppendLine("\t{");
            bool isCodeSplit = false;

            for (int i = 0; i < colList.Count; i++)
            {
                var item = colList[i];
                if (!string.IsNullOrEmpty(item.Comment))
                {
                    isCodeSplit = true;
                    content.Append(CommentTool.CreateComment(item.Comment, 2));
                }

                content.AppendFormat("\t\tpublic {0} {1} {{ get; set; }} = {2};\r\n",
                                     SqlTool.GetFormatString(item.DbType),
                                     item.Name,
                                     SqlTool.GetDefaultValueStr(item.DbType));
                if (isCodeSplit && i < (colList.Count - 1))
                {
                    content.AppendLine();
                }
            }

            content.AppendLine("\t}");
            content.AppendLine();

            var addList = Cache_VMData.GetVMList(table_name, VMType.Add, colList);

            content.AppendFormat("\tpublic class add_{0}\r\n", model_name);
            content.AppendLine("\t{");
            for (int i = 0; i < addList.Count; i++)
            {
                var item = addList[i];
                if (item.IsMainKey)
                {
                    continue;
                }

                if (!string.IsNullOrEmpty(item.Comment))
                {
                    content.Append(CommentTool.CreateComment(item.Comment, 2));
                }

                content.AppendFormat("\t\tpublic {0} {1} {{ get; set; }} = {2};\r\n",
                                     SqlTool.GetFormatString(item.DbType),
                                     item.Name,
                                     SqlTool.GetDefaultValueStr(item.DbType));

                if (isCodeSplit && i < (addList.Count - 1))
                {
                    content.AppendLine();
                }
            }

            content.AppendLine("\t}");
            content.AppendLine();

            var editList = Cache_VMData.GetVMList(table_name, VMType.Edit, colList);

            content.AppendFormat("\tpublic class edit_{0}\r\n", model_name);
            content.AppendLine("\t{");
            for (int i = 0; i < editList.Count; i++)
            {
                var item = editList[i];
                if (!string.IsNullOrEmpty(item.Comment))
                {
                    content.Append(CommentTool.CreateComment(item.Comment, 2));
                }

                content.AppendFormat("\t\tpublic {0} {1} {{ get; set; }} = {2};\r\n",
                                     SqlTool.GetFormatString(item.DbType),
                                     item.Name,
                                     SqlTool.GetDefaultValueStr(item.DbType));

                if (isCodeSplit && i < (editList.Count - 1))
                {
                    content.AppendLine();
                }
            }

            content.AppendLine("\t}");
            content.AppendLine();
            content.AppendFormat("\tpublic class delete_{0}\r\n", model_name);
            content.AppendLine("\t{");
            for (int i = 0; i < colList.Count; i++)
            {
                var item = colList[i];
                if (!item.IsMainKey)
                {
                    continue;
                }

                if (!string.IsNullOrEmpty(item.Comment))
                {
                    content.Append(CommentTool.CreateComment(item.Comment, 2));
                }

                content.AppendFormat("\t\tpublic {0} {1} {{ get; set; }} = {2};\r\n",
                                     SqlTool.GetFormatString(item.DbType),
                                     item.Name,
                                     SqlTool.GetDefaultValueStr(item.DbType));

                if (isCodeSplit && i < (colList.Count - 1))
                {
                    content.AppendLine();
                }
            }

            content.AppendLine("\t}");
            content.AppendLine();

            var queryList = Cache_VMData.GetVMList(table_name, VMType.Query, colList);

            content.AppendFormat("\tpublic class query_{0}\r\n", model_name);
            content.AppendLine("\t{");
            for (int i = 0; i < queryList.Count; i++)
            {
                var item = queryList[i];
                if (!string.IsNullOrEmpty(item.Comment))
                {
                    content.Append(CommentTool.CreateComment(item.Comment, 2));
                }

                content.AppendFormat("\t\tpublic {0} {1} {{ get; set; }} = {2};\r\n",
                                     SqlTool.GetFormatString(item.DbType),
                                     item.Name,
                                     SqlTool.GetDefaultValueStr(item.DbType));

                if (isCodeSplit && i < (queryList.Count - 1))
                {
                    content.AppendLine();
                }
            }

            content.AppendLine("\t\tpublic int page { get; set; } = 0;");
            content.AppendLine("\t\tpublic int pageSize { get; set; } = 0;");
            content.AppendLine("\t}");

            content.AppendLine();
            content.AppendFormat("\tpublic class display_{0}\r\n", model_name);
            content.AppendLine("\t{");
            content.AppendLine("\t\tpublic int item_count { get; set; } = 0;");
            content.AppendLine("\t\tpublic int page_count { get; set; } = 0;");
            content.AppendFormat("\t\tpublic List<{0}> list {{ get; set; }} = new List<{0}>();\r\n", model_name);
            content.AppendLine("\t}");
            content.AppendLine("}");

            return(content.ToString());
        }
        public static string CreateQueryListMethod(int action, string table_name, List <SqlColumnInfo> colList, string model_name, string db_name)
        {
            if ((action & (int)action_type.query_list) == (int)action_type.query_list)
            {
                StringBuilder queryWhereContent = new StringBuilder();
                StringBuilder queryListParams   = new StringBuilder();
                int           index             = 0;

                var queryList = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                foreach (var item in queryList)
                {
                    queryListParams.AppendFormat("{0} {1},", item.DbType.ToMsSqlClassType(), item.Name);

                    if (index == 0)
                    {
                        if (item.DbType.ToLower() == "int" || item.DbType.ToLower() == "bigint" || item.DbType.ToLower() == "decimal" || item.DbType.ToLower() == "float" || item.DbType.ToLower() == "double")
                        {
                            queryWhereContent.AppendFormat("if ({0} >= 0)\r\n", item.Name);
                        }
                        else if (item.DbType.ToLower() == "tinyint")
                        {
                            queryWhereContent.AppendFormat("if ({0} >= 0)\r\n", item.Name);
                        }
                        else if (item.DbType.ToLower() == "datetime" || item.DbType.ToLower() == "date")
                        {
                            queryWhereContent.AppendFormat("if ({0} != DateTime.MinValue)\r\n", item.Name);
                        }
                        else
                        {
                            queryWhereContent.AppendFormat("if (!string.IsNullOrEmpty({0}))\r\n", item.Name);
                        }
                    }
                    else
                    {
                        if (item.DbType.ToLower() == "int" || item.DbType.ToLower() == "bigint" || item.DbType.ToLower() == "decimal" || item.DbType.ToLower() == "float" || item.DbType.ToLower() == "double")
                        {
                            queryWhereContent.AppendFormat("\r\n\t\t\tif ({0} >= 0)\r\n", item.Name);
                        }
                        else if (item.DbType.ToLower() == "tinyint")
                        {
                            queryWhereContent.AppendFormat("\r\n\t\t\tif ({0} >= 0)\r\n", item.Name);
                        }
                        else if (item.DbType.ToLower() == "datetime" || item.DbType.ToLower() == "date")
                        {
                            queryWhereContent.AppendFormat("\r\n\t\t\tif ({0} != DateTime.MinValue)\r\n", item.Name);
                        }
                        else
                        {
                            queryWhereContent.AppendFormat("\r\n\t\t\tif (!string.IsNullOrEmpty({0}))\r\n", item.Name);
                        }
                    }

                    queryWhereContent.Append("\t\t\t{\r\n");
                    queryWhereContent.AppendFormat("\t\t\t\tlistParams.Add(new MySqlParameter(\"@{0}\", {1}) {{ Value = {0} }});\r\n", item.Name, item.DbType.ToMySqlDbType());

                    queryWhereContent.AppendFormat("\t\t\t\twhereStr += \" and {0}=@{0} \";\r\n", item.Name);
                    queryWhereContent.Append("\t\t\t}");
                    queryWhereContent.AppendLine();

                    index++;
                }

                StringBuilder selectSqlContent = new StringBuilder();
                selectSqlContent.Append("string selectSql = string.Format(@\"select * from " + table_name + " where 1=1 {0} limit {1},{2};\", whereStr, ((page - 1) * pageSize), pageSize);\r\n");

                var assignContent = new StringBuilder();
                foreach (var item in colList)
                {
                    assignContent.AppendFormat("                        model.{0} = sqldr[\"{0}\"] == DBNull.Value ? {1} : {2};\r\n", item.Name, ExtendMethod.ToDefaultValue(item.DbType), ExtendMethod.ToDefaultDBValue(item.DbType, item.Name));
                }

                string template = @"
        public List<{0}> QueryList({1}int page, int pageSize)
        {{
            string whereStr = string.Empty;
            List<MySqlParameter> listParams = new List<MySqlParameter>();
            {2}
            {7}
            List<{0}> result = new List<{0}>();
            using (MySqlConnection sqlcn = ConnectionFactory.{3})
            {{
                using(MySqlDataReader sqldr = MySqlHelper2.ExecuteDataReader(sqlcn, CommandType.Text, selectSql, listParams.ToArray()))
                {{
                    while(sqldr.Read())
                    {{
                        {0} model = new {0}();
{5}
                        result.Add(model);
                    }}
                }}
            }}

            return result;
        }}

        public int QueryListCount({4})
        {{
            string whereStr = string.Empty;
            List<MySqlParameter> listParams = new List<MySqlParameter>();
            {2}
            string selectCountSql = string.Format(""select count(0) from {6} where 1=1 {{0}}"", whereStr);
            using (MySqlConnection sqlcn = ConnectionFactory.{3})
            {{
                return Convert.ToInt32(MySqlHelper2.ExecuteScalar(sqlcn, CommandType.Text, selectCountSql, listParams.ToArray()));
            }}
        }}
";

                string queryCountParams = queryListParams.Length > 0 ? queryListParams.ToString().Substring(0, queryListParams.Length - 1) : queryListParams.ToString();
                return(string.Format(template,
                                     model_name,
                                     queryListParams.ToString(),
                                     queryWhereContent.ToString(),
                                     db_name,
                                     queryCountParams,
                                     assignContent.ToString(),
                                     table_name,
                                     selectSqlContent.ToString()));
            }
            else
            {
                return(string.Empty);
            }
        }
        /// <summary>
        /// 创建对象
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        private static string CreateDialog(int action, List <SqlColumnInfo> colList, string table_name)
        {
            StringBuilder dialogContent = new StringBuilder();
            int           addWidth      = 400;

            #region 添加
            if ((action & (int)action_type.add) == (int)action_type.add)
            {
                // 行数过多,分成两行
                string template = @"

        <!-- 模态框(Modal) -->
        <div class=""modal fade"" id=""add_Modal"" tabindex=""-1"" role=""dialog""
            aria-labelledby=""myModalLabel"" aria-hidden=""true"">
            <div class=""modal-dialog"" style=""width: auto; max-width: {1}px;"">
                <div class=""modal-content"">
                    <div class=""modal-header"">
                        <button type=""button"" class=""close""
                            data-dismiss=""modal"" aria-hidden=""true""></button>
                        <h4>添加</h4>
                    </div>
                    <div class=""modal-body"">
                        <div class=""container"">{0}
                        </div>
                    </div>
                    <div class=""modal-footer"">
                        <button type=""button"" class=""btn btn-default"" 
                            onclick=""saveAddModel()"">
                            添加
                        </button>
                        <button type=""button"" class=""btn btn-default""
                            data-dismiss=""modal"">
                            关闭
                        </button>
                    </div>
                </div>
                <!-- /.modal-content -->
            </div>
            <!-- /.modal -->
        </div>";

                // <=8 单列, <=18&&>8 双列,>18 三列
                int           index   = 0;
                StringBuilder content = new StringBuilder();
                if (colList.Count > 18)
                {
                    #region  列
                    content.Append(@"
                        <div class=""row form-group"">");
                    content.AppendFormat(@"
                            <input type=""hidden"" id=""txtAdd{0}"" value="""" />", colList.ToKeyId());

                    var addList = Cache_VMData.GetVMList(table_name, VMType.Add, colList.ToNotMainIdList());
                    foreach (var item in addList)
                    {
                        if (index % 3 == 0 && index != 0)
                        {
                            content.Append(@"
                        </div>
                        <div class=""row form-group"">");
                        }

                        // 初始化form显示数据
                        // &#12288; 占一个中文字符
                        content.AppendFormat(@"
                            <div class=""col-md-4"">
                                <label for=""txtAdd{0}"">{1}:</label>
                                <input type=""text"" id=""txtAdd{0}"" name=""txtAdd{0}"" />
                            </div>", item.Name, item.Comment.PadLeftStr(4, "&emsp;"));

                        index++;
                    }

                    if (index % 3 == 0)
                    {
                        content.Append(@"
                        </div>");
                    }
                    else if (index % 3 == 1)
                    {
                        content.Append(@"
                            <div class=""col-md-8""></div>
                        </div>");
                    }
                    else
                    {
                        content.Append(@"
                            <div class=""col-md-4""></div>
                        </div>");
                    }
                    #endregion

                    addWidth *= 3;
                }
                else if (colList.Count <= 18 & colList.Count > 8)
                {
                    #region 二列
                    content.Append(@"
                        <div class=""row form-group"">");
                    content.AppendFormat(@"
                            <input type=""hidden"" id=""txtAdd{0}"" value="""" />", colList.ToKeyId());
                    var addList = Cache_VMData.GetVMList(table_name, VMType.Add, colList.ToNotMainIdList());
                    foreach (var item in addList)
                    {
                        if (index % 2 == 0 && index != 0)
                        {
                            content.Append(@"
                        </div>
                        <div class=""row form-group"">");
                        }

                        // 初始化form显示数据
                        // &#12288; 占一个中文字符
                        content.AppendFormat(@"
                            <div class=""col-md-4"">
                                <label for=""txtAdd{0}"">{1}:</label>
                                <input type=""text"" id=""txtAdd{0}"" name=""txtAdd{0}"" />
                            </div>", item.Name, item.Comment.PadLeftStr(4, "&emsp;"));

                        index++;
                    }

                    if (index % 2 == 0)
                    {
                        content.Append(@"
                        </div>");
                    }
                    else
                    {
                        content.Append(@"
                            <div class=""col-md-4""></div>
                        </div>");
                    }
                    #endregion

                    addWidth *= 2;
                }
                else
                {
                    #region 一列
                    content.AppendFormat(@"
                            <input type=""hidden"" id=""txtAdd{0}"" value="""" />", colList.ToKeyId());
                    var addList = Cache_VMData.GetVMList(table_name, VMType.Add, colList.ToNotMainIdList());
                    foreach (var item in addList)
                    {
                        content.Append(@"
                        <div class=""row form-group"">");

                        // 初始化form显示数据
                        // &#12288; 占一个中文字符
                        content.AppendFormat(@"
                            <div class=""col-md-12"">
                                <label for=""txtAdd{0}"">{1}:</label>
                                <input type=""text"" id=""txtAdd{0}"" name=""txtAdd{0}"" />
                            </div>", item.Name, item.Comment.PadLeftStr(4, "&emsp;"));

                        content.Append(@"
                        </div>");
                    }
                    #endregion

                    addWidth *= 1;
                }

                dialogContent.Append(string.Format(template, content.ToString(), addWidth));
            }
            #endregion

            int editWidth = 400;
            #region 编辑
            if ((action & (int)action_type.edit) == (int)action_type.edit)
            {
                // 行数过多,分成两行
                string template = @"

        <!-- 模态框(Modal) -->
        <div class=""modal fade"" id=""edit_Modal"" tabindex=""-1"" role=""dialog""
            aria-labelledby=""myModalLabel"" aria-hidden=""true"">
            <div class=""modal-dialog"" style=""width: auto; max-width: {1}px;"">
                <div class=""modal-content"">
                    <div class=""modal-header"">
                        <button type=""button"" class=""close""
                            data-dismiss=""modal"" aria-hidden=""true""></button>
                        <h4>编辑</h4>
                    </div>
                    <div class=""modal-body"">
                        <div class=""container"">{0}
                        </div>
                    </div>
                    <div class=""modal-footer"">
                        <button type=""button"" class=""btn btn-default"" 
                            onclick=""saveEditModel()"">
                            保存
                        </button>
                        <button type=""button"" class=""btn btn-default""
                            data-dismiss=""modal"">
                            关闭
                        </button>
                    </div>
                </div>
                <!-- /.modal-content -->
            </div>
            <!-- /.modal -->
        </div>";

                int           index   = 0;
                StringBuilder content = new StringBuilder();
                if (colList.Count > 18)
                {
                    #region  列
                    content.Append(@"
                        <div class=""row form-group"">");

                    content.AppendFormat(@"
                            <input type=""hidden"" id=""txtEdit{0}"" value="""" />", colList.ToKeyId());
                    var editList = Cache_VMData.GetVMList(table_name, VMType.Edit, colList.ToNotMainIdList());
                    foreach (var item in colList.ToNotMainIdList())
                    {
                        if (index % 3 == 0 && index != 0)
                        {
                            content.Append(@"
                        </div>
                        <div class=""row form-group"">");
                        }

                        // 初始化form显示数据
                        // &#12288; 占一个中文字符
                        content.AppendFormat(@"
                            <div class=""col-md-4"">
                                <label for=""txtEdit{0}"">{1}:</label>
                                <input type=""text"" id=""txtEdit{0}"" name=""txtEdit{0}"" />
                            </div>", item.Name, item.Comment.PadLeftStr(4, "&emsp;"));

                        index++;
                    }

                    if (index % 3 == 0)
                    {
                        content.Append(@"
                        </div>");
                    }
                    else if (index % 3 == 1)
                    {
                        content.Append(@"
                            <div class=""col-md-8""></div>
                        </div>");
                    }
                    else
                    {
                        content.Append(@"
                            <div class=""col-md-4""></div>
                        </div>");
                    }
                    #endregion

                    editWidth *= 3;
                }
                else if (colList.Count <= 18 & colList.Count > 8)
                {
                    #region 二列
                    content.Append(@"
                        <div class=""row form-group"">");

                    content.AppendFormat(@"
                            <input type=""hidden"" id=""txtEdit{0}"" value="""" />", colList.ToKeyId());
                    var editList = Cache_VMData.GetVMList(table_name, VMType.Edit, colList.ToNotMainIdList());
                    foreach (var item in editList)
                    {
                        if (index % 2 == 0 && index != 0)
                        {
                            content.Append(@"
                        </div>
                        <div class=""row form-group"">");
                        }

                        // 初始化form显示数据
                        // &#12288; 占一个中文字符
                        content.AppendFormat(@"
                            <div class=""col-md-4"">
                                <label for=""txtEdit{0}"">{1}:</label>
                                <input type=""text"" id=""txtEdit{0}"" name=""txtEdit{0}"" />
                            </div>", item.Name, item.Comment.PadLeftStr(4, "&emsp;"));

                        index++;
                    }

                    if (index % 3 == 0)
                    {
                        content.Append(@"
                        </div>");
                    }
                    else
                    {
                        content.Append(@"
                            <div class=""col-md-4""></div>
                        </div>");
                    }
                    #endregion

                    editWidth *= 2;
                }
                else
                {
                    #region 一列
                    content.Append(@"
                        <div class=""row form-group"">");

                    content.AppendFormat(@"
                            <input type=""hidden"" id=""txtEdit{0}"" value="""" />
                        </div>", colList.ToKeyId());
                    var editList = Cache_VMData.GetVMList(table_name, VMType.Edit, colList.ToNotMainIdList());
                    foreach (var item in editList)
                    {
                        content.Append(@"
                        <div class=""row form-group"">");

                        // 初始化form显示数据
                        // &#12288; 占一个中文字符
                        content.AppendFormat(@"
                            <div class=""col-md-12"">
                                <label for=""txtEdit{0}"">{1}:</label>
                                <input type=""text"" id=""txtEdit{0}"" name=""txtEdit{0}"" />
                            </div>", item.Name, item.Comment.PadLeftStr(4, "&emsp;"));

                        index++;
                        content.Append(@"
                        </div>");
                    }
                    #endregion

                    editWidth *= 1;
                }

                dialogContent.Append(string.Format(template, content.ToString(), editWidth));
            }
            #endregion

            return(dialogContent.ToString());
        }
        public static string CreateGetAllAndPart(int action, string table_name, List <SqlColumnInfo> colList, string model_name, string db_name)
        {
            var down_allModel     = (action | (int)action_type.export_all) == (int)action_type.export_all;
            var down_selelctModel = (action | (int)action_type.export_select) == (int)action_type.export_select;

            if (down_allModel || down_selelctModel)
            {
                StringBuilder down_allModel_Str = new StringBuilder();
                #region 导出全部
                if (down_allModel)
                {
                    StringBuilder queryWhereContent = new StringBuilder();
                    StringBuilder queryListParams   = new StringBuilder();
                    int           index             = 0;
                    var           queryList         = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                    foreach (var item in queryList)
                    {
                        queryListParams.AppendFormat("{0} {1},", item.DbType.ToMsSqlClassType(), item.Name);

                        if (index == 0)
                        {
                            if (item.DbType.ToLower() == "int" || item.DbType.ToLower() == "bigint")
                            {
                                queryWhereContent.AppendFormat("if ({0} > 0)\r\n", item.Name);
                            }
                            else if (item.DbType.ToLower() == "tinyint")
                            {
                                queryWhereContent.AppendFormat("if ({0} >= 0)\r\n", item.Name);
                            }
                            else if (item.DbType.ToLower() == "datetime" || item.DbType.ToLower() == "date")
                            {
                                queryWhereContent.AppendFormat("if ({0} != DateTime.MinValue)\r\n", item.Name);
                            }
                            else
                            {
                                queryWhereContent.AppendFormat("if (!string.IsNullOrEmpty({0}))\r\n", item.Name);
                            }
                        }
                        else
                        {
                            if (item.DbType.ToLower() == "int" || item.DbType.ToLower() == "bigint")
                            {
                                queryWhereContent.AppendFormat("\t\t\tif ({0} > 0)\r\n", item.Name);
                            }
                            else if (item.DbType.ToLower() == "tinyint")
                            {
                                queryWhereContent.AppendFormat("\t\t\tif ({0} >= 0)\r\n", item.Name);
                            }
                            else if (item.DbType.ToLower() == "datetime" || item.DbType.ToLower() == "date")
                            {
                                queryWhereContent.AppendFormat("\t\t\tif ({0} != DateTime.MinValue)\r\n", item.Name);
                            }
                            else
                            {
                                queryWhereContent.AppendFormat("\t\t\tif (!string.IsNullOrEmpty({0}))\r\n", item.Name);
                            }
                        }

                        queryWhereContent.Append("            {\r\n");
                        queryWhereContent.AppendFormat("                listParams.Add(new MySqlParameter(\"@{0}\", {1}) {{ Value = {0} }});\r\n", item.Name, item.DbType.ToMySqlDbType());

                        queryWhereContent.AppendFormat("                whereStr += \" and {0}=@{0} \";\r\n", item.Name);
                        queryWhereContent.Append("            }\r\n");
                        queryWhereContent.AppendLine();

                        index++;
                    }

                    var assignContent = new StringBuilder();
                    foreach (var item in colList)
                    {
                        assignContent.AppendFormat("                        model.{0} = sqldr[\"{0}\"] == DBNull.Value ? {1} : {2};\r\n", item.Name, ExtendMethod.ToDefaultValue(item.DbType), ExtendMethod.ToDefaultDBValue(item.DbType, item.Name));
                    }

                    string template = @"
        public List<{0}> GetAll({3})
        {{
            string whereStr = string.Empty;
            List<MySqlParameter> listParams = new List<MySqlParameter>();
{1}
            string selectAllSql = string.Format(""select * from {5} where 1=1 {{0}}"", whereStr);
            List<{0}> result = new List<{0}>();
            using (MySqlConnection sqlcn = ConnectionFactory.{2})
            {{
                using(MySqlDataReader sqldr = MySqlHelper2.ExecuteDataReader(sqlcn, CommandType.Text, selectAllSql, listParams.ToArray()))
                {{
                    while(sqldr.Read())
                    {{
                        {0} model = new {0}();
{4}
                        result.Add(model);
                    }}
                }}
            }}

            return result;
        }}
";

                    string queryCountParams = queryListParams.Length > 0 ? queryListParams.ToString().Substring(0, queryListParams.Length - 1) : queryListParams.ToString();
                    down_allModel_Str.AppendFormat(template,
                                                   model_name,
                                                   queryWhereContent.ToString(),
                                                   db_name,
                                                   queryCountParams,
                                                   assignContent.ToString(),
                                                   table_name);
                }
                #endregion

                StringBuilder down_selectModel_Str = new StringBuilder();
                #region 导出选中
                if (down_selelctModel)
                {
                    StringBuilder selectSqlContent = new StringBuilder();
                    selectSqlContent.Append("            string selectSql = string.Format(@\"select * from\r\n");
                    selectSqlContent.Append("            " + table_name + " where " + colList.ToKeyId() + " in ({1})\r\n");
                    selectSqlContent.Append("            {0};\", whereStr, idArrayStr);\r\n");

                    var assignContent = new StringBuilder();
                    foreach (var item in colList)
                    {
                        assignContent.AppendFormat("                        model.{0} = sqldr[\"{0}\"] == DBNull.Value ? {1} : {2};\r\n", item.Name, ExtendMethod.ToDefaultValue(item.DbType), ExtendMethod.ToDefaultDBValue(item.DbType, item.Name));
                    }

                    string template = @"
        public List<{0}> GetPartAll(List<string> idList)
        {{
            var idArrayStr = string.Join("","", (from f in idList
                                select ""'""+ f + ""'"").ToArray());
            string whereStr = string.Empty;
            List<MySqlParameter> listParams = new List<MySqlParameter>();
{3}
            List<{0}> result = new List<{0}>();
            using (MySqlConnection sqlcn = ConnectionFactory.{1})
            {{
                using(MySqlDataReader sqldr = MySqlHelper2.ExecuteDataReader(sqlcn, CommandType.Text, selectSql, listParams.ToArray()))
                {{
                    while(sqldr.Read())
                    {{
                        {0} model = new {0}();
{2}
                        result.Add(model);
                    }}
                }}
            }}

            return result;
        }}

";
                    down_selectModel_Str.AppendFormat(template,
                                                      model_name,
                                                      db_name,
                                                      assignContent.ToString(),
                                                      selectSqlContent.ToString());
                }
                #endregion

                return(down_allModel_Str.ToString() + down_selectModel_Str.ToString());
            }
            else
            {
                return(string.Empty);
            }
        }
        private static string CreateJsLoad(int action, List <SqlColumnInfo> colList, string table_name)
        {
            StringBuilder content  = new StringBuilder();
            string        template = @"
    <script type=""text/javascript"">
        $(function () {
            var pager = $('#dg').datagrid('getPager');
            $('#dg').datagrid('getPager').pagination({
                pageSize: 10, //每页显示的记录条数,默认为10    
                pageList: [10, 15, 20, 25], //可以设置每页记录条数的列表 
                onSelectPage: function (pageNumber, pageSize) {
                    var opts = $('#dg').datagrid('options');
                    opts.pageNumber = pageNumber;
                    opts.pageSize = pageSize;
                    pager.pagination('refresh', {
                        pageNumber: pageNumber,
                        pageSize: pageSize
                    });

                    LoadData(pageNumber, pageSize); //每次更换页面时触发更改   
                },
                onBeforeRefresh: function (pageNumber, pageSize) {
                    // 好像已经被执行过了,这里就不需要了
                    LoadData(pageNumber, pageSize); //每次更换页面时触发更改  
                },
                displayMsg: '当前显示 {from} - {to} 条记录   共 {total} 条记录'
            });
        });

        function LoadData(page_Number, page_Size) {
            if (page_Number == undefined && page_Size == undefined) {
                page_Number = $('#dg').datagrid('getPager').data(""pagination"").options.pageNumber;   //pageNumber为datagrid的当前页码
                page_Size = $('#dg').datagrid('getPager').data(""pagination"").options.pageSize;       //pageSize为datagrid的每页记录条数
            } else {
                $('#dg').datagrid('options').pageNumber = page_Number;   //pageNumber为datagrid的当前页码
                $('#dg').datagrid('options').pageSize = page_Size;       //pageSize为datagrid的每页记录条数
            }
";

            content.Append(template);

            int           index           = 0;
            StringBuilder coditionContent = new StringBuilder();
            StringBuilder pagePost        = new StringBuilder();

            if ((action & (int)action_type.query_list) == (int)action_type.query_list)
            {
                var queryList = Cache_VMData.GetVMList(table_name, VMType.Query, colList.ToNotMainIdList());
                foreach (var item in queryList)
                {
                    // 找到一个
                    coditionContent.AppendFormat("\t\t\tvar txtSearch{0} = $(\"#txtSearch{0}\").val();\r\n", item.Name);

                    // var pagePost = "&xxx=" + xxx + "&yyy=" +yyy;
                    if (index == 0)
                    {
                        pagePost.AppendFormat("\t\t\tvar pageData = \"&txtSearch{0}=\" + txtSearch{0}", item.Name);
                    }
                    else
                    {
                        pagePost.AppendFormat("+ \"&txtSearch{0}=\" + txtSearch{0}", item.Name);
                    }

                    index++;
                }

                pagePost.Append(";");
                content.Append(coditionContent.ToString());
                content.Append(pagePost);
                if (colList.Count == 0)
                {
                    content.Append("\t\t\tvar pageData = \"\";\r\n");
                }

                template = string.Format(@"
            var postData = ""page="" + page_Number + ""&pageSize="" + page_Size + pageData;
            $(""#dg>tbody"").empty();
            $.ajax({{
                type: ""POST"",
                url: ""{0}.aspx?type=load&t="" + new Date().getTime(),
                data: postData,
                success: function (msg) {{
                    var data = eval(""("" + msg + "")"");
                    $('#dg').datagrid('loadData', data.Data);
                    $('#dg').datagrid('getPager').pagination({{
                        //更新pagination的导航列表各参数  
                        total: data.ItemCount, //总数
                        pageSize: page_Size, //行数  
                        pageNumber: page_Number//页数  
                    }});
                }}
            }});
        }}

        $(document).ready(function () {{
            // $(""#dg"").datagrid(""hideColumn"", ""{1}"");
            // 不注释会造成翻页不响应 onSelectPage
            // $(""#dg"").datagrid({{ ""checkOnSelect"": true }});
            // $(""#dg"").datagrid({{ ""selectOnCheck"": false }});
            LoadData(1, 10);

            if ($(""#btnsearch"") != null || $(""#btnsearch"") != undefined) {{
                $(""#btnsearch"").click(function () {{
                    LoadData();
                }});
            }}
        }});
    </script>
", table_name,
                                         colList.ToKeyId());

                content.Append(template);

                return(content.ToString());
            }
            else
            {
                return("");
            }
        }