【发布时间】:2014-12-06 13:13:42
【问题描述】:
我以分层的方式设计了我的应用程序。每个接口都有一个 BusinessOP 层和一个通用数据访问层。在我的数据访问层中,我有这样的数据读取器方法。|
public SqlDataReader executeQuerys(string query01)
{
SqlConnection con = null;
SqlCommand com = null;
try
{
con = new SqlConnection(DBConnect.makeConnection());
con.Open();
com = new SqlCommand(query01, con);
return com.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
com.Dispose();
con.Close();
throw;
}
这是我的 DBConnection 层的代码。
public static string makeConnection()
{
string con = ConfigurationManager.ConnectionStrings["MyDB.Properties.Settings.ConString"].ToString();
return con;
}
在我的业务层中,我有这样的方法,每个方法都调用一个特定的存储过程。
public SqlDataReader getLGDivID(string divName)
{
string query = "EXEC getLGDivID'" + divName + "'";
return new DataAccessLayer().executeQuerys(query);
}
由于我的业务操作层是不安全的,我想在这里使用参数化查询,我使用字符串连接来传递参数。谁能提示我如何修改它?
【问题讨论】:
-
旁注:您应该始终
.Dispose,而不仅仅是在捕获异常时。
标签: c# sql-server data-access-layer business-logic-layer parameterized-query