如何设计从“用户友好”UI构建sql查询语句的代码?

时间:2013-05-06 04:18:13

标签: c# sql user-interface

我继承了ac#(wpf)项目,其中部分代码是用户友好的UI(列表框,单选按钮,滑块等),用于创建SQL查询语句的非SQL人员......然后查询DB并返回结果。

创建SQL的代码基本上遍历UI组件并连接字符串。

我正在放慢找到代码中的错误和\或错误解释所需的内容。

我想将代码更新为更优雅和可维护的状态。有没有:

  • '设计模式'为此?
  • 最佳做法?
  • 好代码的例子?

由于

2 个答案:

答案 0 :(得分:2)

当.net启动时,许多人编写了类似的代码;确实有许多设计模式可以继续发展。

首先,该项目混合了c#和sql语法。将它们分开以将代码大小减半并使优雅增加一倍。还要删除sql注入的可能性。

  • 确定最终的sql通常是什么样的。可能

    select a,b,c from d join e join f where x and y and z
    
  • 在sql端写一个存储过程来封装它,传递参数x,y,z

  • 更改c#代码以调用存储过程而不是sql语句

  • c#调试现在只需查看调用sql语句时最终得到的参数

  • 在sql端,下一步是将表连接和任何静态where子句移动到视图中,这将进一步简化存储过程,并为sql server提供更多机会来预优化数据选择。

祝你好运

答案 1 :(得分:0)

我没有任何特定的设计模式,但如果我要实现这种类型的东西,我想我会尝试创建一种我需要工作的每个SQL操作的抽象表示用;或许类似 SQLite documents it's queries 的方式。

在创建表示查询的数据结构时,以这种方式思考可能会有所帮助。