取一个字符串,把它变成一些DB命令(C#)

Mar*_*lio 6 c# parsing command

我需要用C#编写一些东西,允许用户以人类可读的格式查询数据.所以在textarea中,他们会输入:

Students.Class, name, address, classid, grade
Run Code Online (Sandbox Code Playgroud)

这将导致:

Marcus, 11B Westbury Ave. 200718, A+
Run Code Online (Sandbox Code Playgroud)

以上应该做的是:查看学生数据库,加入课堂表,然后检索姓名,地址,分类,成绩.

我尝试编写自己的解析方法,将字符串拆分为数组,然后根据数组中的数据查询数据库.但是,我现在遇到的问题是有些用户在使用语法时出错:

Students, name, address, classid, grade
Run Code Online (Sandbox Code Playgroud)

(错过了.class位).所以我必须抛出try/catch方法并向用户显示错误消息.

上面的简单方法有效,但我想知道是否有任何库可以获取我的字符串数据并执行我之后的操作?

小智 1

你想以这种方式创建解析,你需要学习flex和bison ,但有一个链接可以帮助你创建它。

https://www.codeproject.com/Articles/220042/Easily-Create-Your-Own-Parser https://www.codeproject.com/Articles/664785/A-New-Parser-Generator-for-Csharp