关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。
想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。
5年前关闭。
我想使用C#解析SQL代码。
具体来说,是否有任何免费的解析器可以解析SQL代码并从中生成树或任何其他结构?它还应为嵌套结构生成适当的树。
它还应该返回该树的节点代表哪种语句。
例如,如果节点包含循环条件,则它应返回这是节点的“循环类型”。
还是有什么方法可以解析C#中的代码并生成想要的类型的树?
使用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 。
祝好运。