当前位置:Gxlcms > 数据库问题 > 将枚举定义生成SQL中的Case-When-then语句

将枚举定义生成SQL中的Case-When-then语句

时间:2021-07-01 10:21:17 帮助过:2人阅读

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("\r\n",""); 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("\r\n when {0} then ‘{1}‘ ", item.Value, string.IsNullOrEmpty(item.Mark) ? item.Key : item.Mark); } else { result += string.Format("\r\n when {0} then ‘{1}‘ ", item.Value, item.Key); } } if (enumInfos != null) { result += "\r\n else ‘未知枚举‘ end"; } this.txtResult.Text = result; } } public class EnumInfo { public string Mark { get; set; } public string Key { get; set; } public string Value { get; set; } } }

 

将枚举定义生成SQL中的Case-When-then语句

标签:

人气教程排行