2011-03-02 17 views
1

是否可以在后端编写sql语句?SQL查询的aspx.cs文件(后端)

你知道制作一个动态网站时,总会有大量的SQL句子。 我想知道是否有可能在类文件中只有2-3个SQL查询,并将其余的写在后端?

也许这样。

public DataTable SelectAllFrom(string query) 
    { 
     string query = @"SELECT * FROM ?query"; 

     using (var cmd = new MySqlCommand(query)) 
     { 
      cmd.Parameters.Add("?query", MySqlDbType.VarChar).Value = query; 
      return objConn.getData(cmd); 
     } 
    } 

,然后在后台代码:

string query = "tblAA WHERE fldAA=1"; 
    var list = _objMethods.SelectAllFrom(query).Rows; 
+2

你是什么意思的后端?数据访问层?一个ORM? – 2011-03-02 17:08:21

回答

0

你可以做到,但这不是很好的做法。查询分布越广泛,与演示文稿和业务逻辑代码混合的SQL越多,维护越困难。您的问题听起来像是您正在使用某种分层/分层架构,而这些架构存在一些非常好的理由。我会尽量避免在没有任何组织的情况下用SQL处理你的代码;它在短期内可能很快且容易,但可能会在稍后导致问题。

0

你可以做这样的事情,但它使查询时,跨对象分割更难维持。添加你有连接,也可能不想也包含连接查询。亲自将查询保存在一起是很有意义的,并保持一层的责任。

此外,您可以创建一个帮助程序,使数据库对象进程更容易使用。

HTH。

2

拆分SELECT * FROM并不能真正节省您太多的重复,并且如果因为联接或效率而不想SELECT *会给您带来麻烦。

您希望避免代码中的重复是令人钦佩的,并且隔离从查询本身运行查询的机制是很好的。但是这太难了。在大图中看看ORM。