编写SQL查询 - 编写复杂问题的方法!

时间:2011-01-26 20:57:32

标签: c# mysql visual-studio

嘿伙计们,有没有人有任何可能对以下内容有帮助的建议?

我正在重写一些软件,我为我工作的原型做了一些软件,我把它变成了一个更符合OOP的程序:)

我刚刚编写了一个自定义数据库处理程序类来处理我的连接,我的查询等。这个想法是这个数据库处理程序执行处理数据库所需的一切,只返回正在运行的查询的结果集。 / p>

无论如何,我刚刚编写了一些为我编写SQL查询的方法 - 这个想法是我以Array的形式传递了一些参数,并且该类写入了查询所需的SQL字符串,从而删除了SQL注入问题。

我遇到的问题是;使用正常选择(使用where参数和order / group by)并插入和更新,这些都可以正常工作。但是,如果我想传递一个可能有连接的查询,或多表连接或where子句,其中包含like或sub select(这可能是运行select方法两次!)

我无法弄清楚如何获得生成这些查询的方法。有没有人有什么建议? - 可能必须构建自定义的,而不能自己编写查询。

另一个想法是复杂化事情,只是执行一个删除传递的字符串中包含的斜杠的调用。

提前致谢,

瓦杰

顺便说一句,如果它没有多大意义,从今天早上7点开始编码,大脑慢慢消失! :)笔

4 个答案:

答案 0 :(得分:2)

您可以使用带参数的sqlcommand代替http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson06.aspx

答案 1 :(得分:2)

我建议您考虑编写stored procedures来获取所需的功能,而不是尝试编写某种通用的查询构建机制。

答案 2 :(得分:0)

如果您需要复杂的查询构建机制,请考虑已经开发的许多ORM框架之一,例如NHibernate或MSEF。这些允许您使用Linq(编译器检查;得喜欢它)创建一些非常复杂的查询,然后将其转换为SQL。

答案 3 :(得分:0)

如果你在表上有选项,你可以考虑做一个LINQ to SQL数据层。这将使您可以使用表和查询结果作为类。

很容易开始制作数据库的.dbml check out a walk through on MSDN

它还将动态SQL创作留给MS语言团队,所以这很好。