一尘不染

在C#中解析SQL代码

c#

关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。


想改善这个问题吗? 更新问题,使其成为Stack Overflow
的主题

5年前关闭。

我想使用C#解析SQL代码。

具体来说,是否有任何免费的解析器可以解析SQL代码并从中生成树或任何其他结构?它还应为嵌套结构生成适当的树。

它还应该返回该树的节点代表哪种语句。

例如,如果节点包含循环条件,则它应返回这是节点的“循环类型”。

还是有什么方法可以解析C#中的代码并生成想要的类型的树?


阅读 817

收藏
2020-05-19

共1个答案

一尘不染

使用Microsoft 实体框架(EF)。

它具有一个“ Entity SQL”解析器,该解析器可构建表达式树,

using System.Data.EntityClient;
...
EntityConnection conn = new EntityConnection(myContext.Connection.ConnectionString);
conn.Open();
EntityCommand cmd = conn.CreateCommand();
cmd.CommandText = @"Select t.MyValue From MyEntities.MyTable As t";
var queryExpression = cmd.Expression;
....
conn.Close();

或类似的东西,请在MSDN上查看。

这一切都在鲍尔默斯上打勾:-)

The Code Project上还有一个 SQL
Parser

祝好运。

2020-05-19