zoukankan      html  css  js  c++  java
  • 将枚举定义生成SQL中的Case-When-then语句

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Text.RegularExpressions;
    
    namespace TestPro
    {
        public partial class CaseWhenSqlGeneration : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
    
            protected void btnOk_Click(object sender, EventArgs e)
            {
                string enumString = this.txtEnum.Text.Trim().Replace("
    ","");
                bool useMark = this.chkUseMark.Enabled;
                string result = string.Empty;
                List<EnumInfo> enumInfos = new List<EnumInfo>();
    
                string regString = "(?:(?:\s*///\s*<summary>)\s*///\s*(?<mark>[\S]*?)(?:\s*///\s*</summary>))*\s*((?<key>[\S]+)\s*=\s*(?<value>[\d]+))";
                Regex regex = new Regex(regString, RegexOptions.None);
    
                MatchCollection matchs = regex.Matches(enumString);
                foreach (Match match in matchs)
                {
                    enumInfos.Add(new EnumInfo
                    {
                        Mark = match.Groups["mark"].Value,
                        Key = match.Groups["key"].Value,
                        Value = match.Groups["value"].Value
                    });
                }
    
                foreach (var item in enumInfos)
                {
                    if (this.chkUseMark.Checked)
                    {
                        result += string.Format("
     when {0} then '{1}' ", item.Value, string.IsNullOrEmpty(item.Mark) ? item.Key : item.Mark);
                    }
                    else
                    {
                        result += string.Format("
     when {0} then '{1}' ", item.Value, item.Key);
                    }
                }
    
                if (enumInfos != null) { result += "
     else '未知枚举' end"; }
                this.txtResult.Text = result;
            }
        }
    
        public class EnumInfo
        {
            public string Mark { get; set; }
            public string Key { get; set; }
            public string Value { get; set; }
        }
    }
  • 相关阅读:
    发布新闻
    下拉列表联动显示(Car表) 三级联动
    下拉列表联动显示(中国省市)三级联动
    MVC——数据库增删改查(Razor)——Html语法
    MVC——数据库增删改查(Razor)
    MVC——数据库增删改查(aspx)
    ASP.NET MVC 4 (五) 视图
    ASP.NET MVC 4 (四) 控制器扩展
    ASP.NET MVC 4 (三) 过滤器
    ASP.NET MVC 4 (二)控制器
  • 原文地址:https://www.cnblogs.com/huangzelin/p/4495368.html
Copyright © 2011-2022 走看看