【发布时间】:2012-09-26 19:56:48
【问题描述】:
我正在使用一个使用大量内联 SQL 查询的 asp.net 网站...我想知道是否最好即时创建内联查询:
int i = 500;
using (SqlConnection conn = new SqlConnection(connStr))
{
SqlCommand com = new SqlCommand(conn);
...
com.CommandText = "select from table where column < @parameter";
...
}
或者有一个类来保存应用程序所需的所有查询。像这样的:
class SqlQueries
{
private string query1 =
"select * from tblEmployees where EmployeeName = @EmployeeName";
private string query2 =
"select * from tblVacation where EmployeeName = @EmployeeName";
public string Query(string s)
{
string str = string.Empty;
switch (s)
{
case "query1":
str = query1;
break;
case "query2":
str = query2;
break;
}
return str;
}
}
谢谢!
【问题讨论】:
-
如果您决定采用 2 号间接方法,那么我建议创建一个字典,该字典由包含 SQL 的查询名称索引。然后,您可以使用字典初始化程序在源代码中以几乎类似表格的方式列出所有查询。您当前的方法很冗长并且容易受到复制粘贴错误的影响(目前至少有一个会被编译器发现)。
new Dictionary<string, string> { { "query1", "select * ..." }, { "query2", "select * ..." } }; -
谢谢大家!太糟糕了,我不能选择多个答案:(
标签: c# asp.net sql-server visual-studio