0

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

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

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

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

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

谢谢

4

2 回答 2

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 提供更多机会预先优化数据选择。

祝你好运

于 2013-05-06T04:48:32.083 回答
0

我对此没有任何特定的设计模式,但如果我要实现这种类型的东西,我想我会尝试为我需要使用的每个 SQL 操作创建一种抽象表示;可能类似于SQLite 记录它的查询的方式。

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

于 2013-05-06T08:20:37.893 回答