在C#应用程序中格式化SQL查询的正确方法
本文关键字:方法 查询 SQL 应用程序 格式化 | 更新日期: 2023-09-27 18:19:52
我有一个C#控制台应用程序,它对数据库服务器进行一系列查询。
我经常需要修改SQL,并希望简单地将SQL从SQL编辑器复制/粘贴到C#源代码中,而不必每次都重新格式化SQL。
目前,SQL都在一行。。。如下所示:
OleDbDataAdapter da_ssm_servers = new OleDbDataAdapter(@"SELECT * FROM mytable ORDER BY Server;", connSSM);
SQL比上面长得多,有很多表JOIN等。
我想保留格式,但不想真的回去在每行周围添加引号,等等。
如果有人有任何建议和例子,我们将不胜感激。
我这样做:
string sql = @"
SELECT *
FROM mytable
ORDER BY Server";
OleDbDataAdapter da_ssm_servers = new OleDbDataAdapter(sql, connSSM);
我的建议是远离像使用和利用存储过程那样的临时查询。这将解耦您的设计,并将您的调用限制为存储过程名称和可能的参数。
但是,如果必须使用即席查询,则使用@
作为前缀,这样就可以跨越多行,而不必将每行都用引号括起来。
只要使用@语法,就可以让SQL跨多行。
例如
string sql = @"select
colA,
colB,
colC
from
tableX
inner join tableY
on tableX.colA = tableY.colA
where
colB > 20;"
看来您的代码应该可以正常工作。当你用@开始你的字符串时,你就使用了一个逐字逐句的字符串。换行符和格式被保留,不需要将每一行都用引号括起来。你只需要一句结束语。