是否可以在后端编写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;
答案 0 :(得分:2)
分离SELECT * FROM
并不能真正为你节省多少重复,如果因为加入或效率而不想SELECT *
,那么会给你带来麻烦。
您希望避免重复代码是令人钦佩的,并且从查询本身隔离运行查询的机制是好的。但这有点太难了。在大图中看一下ORM。
答案 1 :(得分:0)
你可以做类似的事情,但是当查询跨对象分割时,它会更难维护。添加您有联接,也可能不想也包括联接查询。个人保持查询在一起是有道理的,并保持一层的责任。
此外,您可以创建一个帮助程序,使数据库对象进程更容易使用。
HTH。
答案 2 :(得分:0)
你可以做到,但这不是很好的做法。查询的分布越多,您与表示和业务逻辑代码混合的SQL就越多,维护起来就越困难。你的问题让人觉得你正在使用某种类型的分层/分层架构,而这些架构存在的原因非常充分。我会尽量避免在没有任何组织的情况下使用SQL编写代码;它可能在短期内快速而简单,但可能会在以后导致问题。