[英]How to get specific parts of string and assign them to variables in c#?
[英]How can i get the parts of a SQL string using C#?
我有一个 SQL 字符串
select Id, Name from Order where Id ='8675' and Name ='Test'
如何使用 C# 获取其中的部分,即from
部分, where
部分和select
部分以:
select Id, Name
-----> select 部分from Order
-----> 从零件where Id ='8675'
-----> 其中部分如果需要,还有任何其他部分,如果他们有group by
等?
我尝试了以下
var str = @"select Id, Name from Order where Id ='8675' and Name ='Test'";
String[] spearator = { "from", "where" };
String[] strlist = str.Split(spearator,
StringSplitOptions.RemoveEmptyEntries);
我现在遇到的问题是它不会忽略大小写,所以如果有 From 它就不会工作。 我怎样才能做到这一点?
String[] strlist = str.ToLower().Split(spearator,
StringSplitOptions.RemoveEmptyEntries);
在 Split() 之前添加 ToLower()。
我觉得还是用Sqlparser比较好,因为简单的操作是获取不到的。
使用“SqModel”进行分析时可能会出现这种情况。 https://www.nuget.org/packages/SqModel#readme-body-tab
例子
//using SqModel;
//using SqModel.Analysis;
var sq = SqlParser.Parse(@"select Id, Name from Orders where Id ='8675' and Name ='Test'");
Assert.Equal("Id", sq.GetSelectItems()[0].Name);
Assert.Equal("Name", sq.GetSelectItems()[1].Name);
Assert.Equal("Orders", sq.FromClause.TableName);
Assert.Equal("Id = '8675' and Name = 'Test'", sq.Where.ToQuery().CommandText);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.