aspx.cs文件中的SQL查询(后端)

时间:2011-03-02 17:00:50

标签: asp.net mysql sql

是否可以在后端编写sql语句?

你知道在创建一个动态网站时,总会有大量的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;

3 个答案:

答案 0 :(得分:2)

分离SELECT * FROM并不能真正为你节省多少重复,如果因为加入或效率而不想SELECT *,那么会给你带来麻烦。

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

答案 1 :(得分:0)

你可以做类似的事情,但是当查询跨对象分割时,它会更难维护。添加您有联接,也可能不想也包括联接查询。个人保持查询在一起是有道理的,并保持一层的责任。

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

HTH。

答案 2 :(得分:0)

你可以做到,但这不是很好的做法。查询的分布越多,您与表示和业务逻辑代码混合的SQL就越多,维护起来就越困难。你的问题让人觉得你正在使用某种类型的分层/分层架构,而这些架构存在的原因非常充分。我会尽量避免在没有任何组织的情况下使用SQL编写代码;它可能在短期内快速而简单,但可能会在以后导致问题。