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; }
        }
    }
  • 相关阅读:
    前后端分离下的自动化部署
    bouncy castle的配置
    列出本机JCE提供者,支持消息摘要算法,支持公钥私钥算法
    javaScript动态参数
    PKCS10生成证书csr
    未来编程语言---猜测
    html编辑网站
    java反编译工具JD-GUI
    java.lang.OutOfMemoryError: PermGen space
    修改idea的运行内存
  • 原文地址:https://www.cnblogs.com/huangzelin/p/4495368.html
Copyright © 2011-2022 走看看