如何将SQL查询应用于C#DataTable / Dataset?
我有一个应用程序,用户可以在其中输入sql查询作为文本,我需要在我的应用程序中针对C#DataTable / Dataset运行它.有可能吗?
编辑: 编辑2: 解决方法如果您的用户将输入除最简单的选择语句之外的任何内容,那么您将很难做到这一点.我想你的项目为SQL编写一个完整的解析器是非常昂贵的,但这基本上就是你所说的.对于我们拥有的本土ORM,我有一个类,它将基本上预定义的SQL查询转换为可以与DataTable.Select一起使用的东西,但是where子句是从SqlParameters生成的. 可能解决方案 也许你可以结合以下项目来接近你所追求的目标: Linqer (SQL to LINQ converter)然后LINQ to DataSet 我自己没有使用过Linqer. 其他一些想法 我相信你一直在考虑这个问题,但这样做的难度可能意味着如果你缩小一点就有更好的方法.严格地说,使用未知查询查询缓存意味着您必须使用所有可能的数据填充缓存,或者能够在提交查询时调用该数据.根据定义,这不能提供比直接查询源更好的性能,除非你在过时之前足够多地访问缓存以使其变得有价值.对于一个特殊的报告系统(我的假设),我倾向于怀疑是这种情况,我也担心它不会比任何边缘情况都要优于数据库引擎. @JoshC还提到了Sqlite的可能性,并且还有SQL Server 2012 LocalDB可能符合要求,尽管这些肯定不是.net数据集. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |